зеркало из https://github.com/mozilla/gecko-dev.git
43039 строки
1.6 MiB
43039 строки
1.6 MiB
console.time("Load Player Dependencies");
|
|
console.time("Load Shared Dependencies");
|
|
var jsGlobal = function() {
|
|
return this || (0,eval)("this");
|
|
}(), inBrowser = "undefined" != typeof console;
|
|
jsGlobal.performance || (jsGlobal.performance = {});
|
|
jsGlobal.performance.now || (jsGlobal.performance.now = "undefined" !== typeof dateNow ? dateNow : Date.now);
|
|
function log(b) {
|
|
for (var k = 0;k < arguments.length - 1;k++) {
|
|
}
|
|
jsGlobal.print.apply(jsGlobal, arguments);
|
|
}
|
|
function warn(b) {
|
|
for (var k = 0;k < arguments.length - 1;k++) {
|
|
}
|
|
inBrowser ? console.warn.apply(console, arguments) : jsGlobal.print(Shumway.IndentingWriter.RED + b + Shumway.IndentingWriter.ENDC);
|
|
}
|
|
var Shumway;
|
|
(function(b) {
|
|
function k(a) {
|
|
return(a | 0) === a;
|
|
}
|
|
function g(a) {
|
|
return "object" === typeof a || "function" === typeof a;
|
|
}
|
|
function f(a) {
|
|
return String(Number(a)) === a;
|
|
}
|
|
function t(a) {
|
|
var c = 0;
|
|
if ("number" === typeof a) {
|
|
return c = a | 0, a === c && 0 <= c ? !0 : a >>> 0 === a;
|
|
}
|
|
if ("string" !== typeof a) {
|
|
return!1;
|
|
}
|
|
var e = a.length;
|
|
if (0 === e) {
|
|
return!1;
|
|
}
|
|
if ("0" === a) {
|
|
return!0;
|
|
}
|
|
if (e > b.UINT32_CHAR_BUFFER_LENGTH) {
|
|
return!1;
|
|
}
|
|
var r = 0, c = a.charCodeAt(r++) - 48;
|
|
if (1 > c || 9 < c) {
|
|
return!1;
|
|
}
|
|
for (var h = 0, q = 0;r < e;) {
|
|
q = a.charCodeAt(r++) - 48;
|
|
if (0 > q || 9 < q) {
|
|
return!1;
|
|
}
|
|
h = c;
|
|
c = 10 * c + q;
|
|
}
|
|
return h < b.UINT32_MAX_DIV_10 || h === b.UINT32_MAX_DIV_10 && q <= b.UINT32_MAX_MOD_10 ? !0 : !1;
|
|
}
|
|
(function(a) {
|
|
a[a._0 = 48] = "_0";
|
|
a[a._1 = 49] = "_1";
|
|
a[a._2 = 50] = "_2";
|
|
a[a._3 = 51] = "_3";
|
|
a[a._4 = 52] = "_4";
|
|
a[a._5 = 53] = "_5";
|
|
a[a._6 = 54] = "_6";
|
|
a[a._7 = 55] = "_7";
|
|
a[a._8 = 56] = "_8";
|
|
a[a._9 = 57] = "_9";
|
|
})(b.CharacterCodes || (b.CharacterCodes = {}));
|
|
b.UINT32_CHAR_BUFFER_LENGTH = 10;
|
|
b.UINT32_MAX = 4294967295;
|
|
b.UINT32_MAX_DIV_10 = 429496729;
|
|
b.UINT32_MAX_MOD_10 = 5;
|
|
b.isString = function(a) {
|
|
return "string" === typeof a;
|
|
};
|
|
b.isFunction = function(a) {
|
|
return "function" === typeof a;
|
|
};
|
|
b.isNumber = function(a) {
|
|
return "number" === typeof a;
|
|
};
|
|
b.isInteger = k;
|
|
b.isArray = function(a) {
|
|
return a instanceof Array;
|
|
};
|
|
b.isNumberOrString = function(a) {
|
|
return "number" === typeof a || "string" === typeof a;
|
|
};
|
|
b.isObject = g;
|
|
b.toNumber = function(a) {
|
|
return+a;
|
|
};
|
|
b.isNumericString = f;
|
|
b.isNumeric = function(a) {
|
|
if ("number" === typeof a) {
|
|
return!0;
|
|
}
|
|
if ("string" === typeof a) {
|
|
var c = a.charCodeAt(0);
|
|
return 65 <= c && 90 >= c || 97 <= c && 122 >= c || 36 === c || 95 === c ? !1 : t(a) || f(a);
|
|
}
|
|
return!1;
|
|
};
|
|
b.isIndex = t;
|
|
b.isNullOrUndefined = function(a) {
|
|
return void 0 == a;
|
|
};
|
|
(function(a) {
|
|
a.backtrace = function() {
|
|
try {
|
|
throw Error();
|
|
} catch (a) {
|
|
return a.stack ? a.stack.split("\n").slice(2).join("\n") : "";
|
|
}
|
|
};
|
|
a.error = function(c) {
|
|
inBrowser ? warn(c) : warn(c + "\n\nStack Trace:\n" + a.backtrace());
|
|
throw Error(c);
|
|
};
|
|
a.assert = function(c, r) {
|
|
"undefined" === typeof r && (r = "assertion failed");
|
|
"" === c && (c = !0);
|
|
c || a.error(r.toString());
|
|
};
|
|
a.assertUnreachable = function(a) {
|
|
var l = Error().stack.split("\n")[1];
|
|
throw Error("Reached unreachable location " + l + a);
|
|
};
|
|
a.assertNotImplemented = function(c, r) {
|
|
c || a.error("notImplemented: " + r);
|
|
};
|
|
a.warning = function(a) {
|
|
warn(a);
|
|
};
|
|
a.notUsed = function(c) {
|
|
a.assert(!1, "Not Used " + c);
|
|
};
|
|
a.notImplemented = function(c) {
|
|
log("release: false");
|
|
a.assert(!1, "Not Implemented " + c);
|
|
};
|
|
a.abstractMethod = function(c) {
|
|
a.assert(!1, "Abstract Method " + c);
|
|
};
|
|
var c = {};
|
|
a.somewhatImplemented = function(e) {
|
|
c[e] || (c[e] = !0, a.warning("somewhatImplemented: " + e));
|
|
};
|
|
a.unexpected = function(c) {
|
|
a.assert(!1, "Unexpected: " + c);
|
|
};
|
|
a.untested = function(c) {
|
|
a.warning("Congratulations, you've found a code path for which we haven't found a test case. Please submit the test case: " + c);
|
|
};
|
|
})(b.Debug || (b.Debug = {}));
|
|
var s = b.Debug;
|
|
b.getTicks = function() {
|
|
return performance.now();
|
|
};
|
|
(function(a) {
|
|
function c(a, l) {
|
|
for (var r = 0, e = a.length;r < e;r++) {
|
|
if (a[r] === l) {
|
|
return r;
|
|
}
|
|
}
|
|
a.push(l);
|
|
return a.length - 1;
|
|
}
|
|
var e = b.Debug.assert;
|
|
a.popManyInto = function(a, l, c) {
|
|
e(a.length >= l);
|
|
for (var r = l - 1;0 <= r;r--) {
|
|
c[r] = a.pop();
|
|
}
|
|
c.length = l;
|
|
};
|
|
a.popMany = function(a, l) {
|
|
e(a.length >= l);
|
|
var c = a.length - l, r = a.slice(c, this.length);
|
|
a.splice(c, l);
|
|
return r;
|
|
};
|
|
a.popManyIntoVoid = function(a, l) {
|
|
e(a.length >= l);
|
|
a.length -= l;
|
|
};
|
|
a.pushMany = function(a, l) {
|
|
for (var c = 0;c < l.length;c++) {
|
|
a.push(l[c]);
|
|
}
|
|
};
|
|
a.top = function(a) {
|
|
return a.length && a[a.length - 1];
|
|
};
|
|
a.last = function(a) {
|
|
return a.length && a[a.length - 1];
|
|
};
|
|
a.peek = function(a) {
|
|
e(0 < a.length);
|
|
return a[a.length - 1];
|
|
};
|
|
a.indexOf = function(a, l) {
|
|
for (var c = 0, r = a.length;c < r;c++) {
|
|
if (a[c] === l) {
|
|
return c;
|
|
}
|
|
}
|
|
return-1;
|
|
};
|
|
a.pushUnique = c;
|
|
a.unique = function(a) {
|
|
for (var l = [], r = 0;r < a.length;r++) {
|
|
c(l, a[r]);
|
|
}
|
|
return l;
|
|
};
|
|
a.copyFrom = function(h, c) {
|
|
h.length = 0;
|
|
a.pushMany(h, c);
|
|
};
|
|
a.ensureTypedArrayCapacity = function(a, l) {
|
|
if (a.length < l) {
|
|
var c = a;
|
|
a = new a.constructor(b.IntegerUtilities.nearestPowerOfTwo(l));
|
|
a.set(c, 0);
|
|
}
|
|
return a;
|
|
};
|
|
var r = function() {
|
|
function a(h) {
|
|
"undefined" === typeof h && (h = 16);
|
|
this._f32 = this._i32 = this._u16 = this._u8 = null;
|
|
this._offset = 0;
|
|
this.ensureCapacity(h);
|
|
}
|
|
a.prototype.reset = function() {
|
|
this._offset = 0;
|
|
};
|
|
Object.defineProperty(a.prototype, "offset", {get:function() {
|
|
return this._offset;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.getIndex = function(a) {
|
|
e(1 === a || 2 === a || 4 === a || 8 === a || 16 === a);
|
|
a = this._offset / a;
|
|
e((a | 0) === a);
|
|
return a;
|
|
};
|
|
a.prototype.ensureAdditionalCapacity = function(a) {
|
|
this.ensureCapacity(this._offset + a);
|
|
};
|
|
a.prototype.ensureCapacity = function(a) {
|
|
if (!this._u8) {
|
|
this._u8 = new Uint8Array(a);
|
|
} else {
|
|
if (this._u8.length > a) {
|
|
return;
|
|
}
|
|
}
|
|
var h = 2 * this._u8.length;
|
|
h < a && (h = a);
|
|
a = new Uint8Array(h);
|
|
a.set(this._u8, 0);
|
|
this._u8 = a;
|
|
this._u16 = new Uint16Array(a.buffer);
|
|
this._i32 = new Int32Array(a.buffer);
|
|
this._f32 = new Float32Array(a.buffer);
|
|
};
|
|
a.prototype.writeInt = function(a) {
|
|
e(0 === (this._offset & 3));
|
|
this.ensureCapacity(this._offset + 4);
|
|
this.writeIntUnsafe(a);
|
|
};
|
|
a.prototype.writeIntAt = function(a, h) {
|
|
e(0 <= h && h <= this._offset);
|
|
e(0 === (h & 3));
|
|
this.ensureCapacity(h + 4);
|
|
this._i32[h >> 2] = a;
|
|
};
|
|
a.prototype.writeIntUnsafe = function(a) {
|
|
this._i32[this._offset >> 2] = a;
|
|
this._offset += 4;
|
|
};
|
|
a.prototype.writeFloat = function(a) {
|
|
e(0 === (this._offset & 3));
|
|
this.ensureCapacity(this._offset + 4);
|
|
this.writeFloatUnsafe(a);
|
|
};
|
|
a.prototype.writeFloatUnsafe = function(a) {
|
|
this._f32[this._offset >> 2] = a;
|
|
this._offset += 4;
|
|
};
|
|
a.prototype.write4Floats = function(a, h, l, c) {
|
|
e(0 === (this._offset & 3));
|
|
this.ensureCapacity(this._offset + 16);
|
|
this.write4FloatsUnsafe(a, h, l, c);
|
|
};
|
|
a.prototype.write4FloatsUnsafe = function(a, h, l, c) {
|
|
var r = this._offset >> 2;
|
|
this._f32[r + 0] = a;
|
|
this._f32[r + 1] = h;
|
|
this._f32[r + 2] = l;
|
|
this._f32[r + 3] = c;
|
|
this._offset += 16;
|
|
};
|
|
a.prototype.write6Floats = function(a, h, l, c, r, u) {
|
|
e(0 === (this._offset & 3));
|
|
this.ensureCapacity(this._offset + 24);
|
|
this.write6FloatsUnsafe(a, h, l, c, r, u);
|
|
};
|
|
a.prototype.write6FloatsUnsafe = function(a, h, l, c, r, e) {
|
|
var u = this._offset >> 2;
|
|
this._f32[u + 0] = a;
|
|
this._f32[u + 1] = h;
|
|
this._f32[u + 2] = l;
|
|
this._f32[u + 3] = c;
|
|
this._f32[u + 4] = r;
|
|
this._f32[u + 5] = e;
|
|
this._offset += 24;
|
|
};
|
|
a.prototype.subF32View = function() {
|
|
return this._f32.subarray(0, this._offset >> 2);
|
|
};
|
|
a.prototype.subI32View = function() {
|
|
return this._i32.subarray(0, this._offset >> 2);
|
|
};
|
|
a.prototype.subU16View = function() {
|
|
return this._u16.subarray(0, this._offset >> 1);
|
|
};
|
|
a.prototype.subU8View = function() {
|
|
return this._u8.subarray(0, this._offset);
|
|
};
|
|
a.prototype.hashWords = function(a, h, l) {
|
|
h = this._i32;
|
|
for (var c = 0;c < l;c++) {
|
|
a = (31 * a | 0) + h[c] | 0;
|
|
}
|
|
return a;
|
|
};
|
|
a.prototype.reserve = function(a) {
|
|
a = a + 3 & -4;
|
|
this.ensureCapacity(this._offset + a);
|
|
this._offset += a;
|
|
};
|
|
return a;
|
|
}();
|
|
a.ArrayWriter = r;
|
|
})(b.ArrayUtilities || (b.ArrayUtilities = {}));
|
|
var m = b.ArrayUtilities, d = function() {
|
|
function a(l) {
|
|
this._u8 = new Uint8Array(l);
|
|
this._u16 = new Uint16Array(l);
|
|
this._i32 = new Int32Array(l);
|
|
this._f32 = new Float32Array(l);
|
|
this._offset = 0;
|
|
}
|
|
Object.defineProperty(a.prototype, "offset", {get:function() {
|
|
return this._offset;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.isEmpty = function() {
|
|
return this._offset === this._u8.length;
|
|
};
|
|
a.prototype.readInt = function() {
|
|
s.assert(0 === (this._offset & 3));
|
|
s.assert(this._offset <= this._u8.length - 4);
|
|
var a = this._i32[this._offset >> 2];
|
|
this._offset += 4;
|
|
return a;
|
|
};
|
|
a.prototype.readFloat = function() {
|
|
s.assert(0 === (this._offset & 3));
|
|
s.assert(this._offset <= this._u8.length - 4);
|
|
var a = this._f32[this._offset >> 2];
|
|
this._offset += 4;
|
|
return a;
|
|
};
|
|
return a;
|
|
}();
|
|
b.ArrayReader = d;
|
|
(function(l) {
|
|
function c(a, h) {
|
|
return Object.prototype.hasOwnProperty.call(a, h);
|
|
}
|
|
function e(a, h) {
|
|
for (var l in h) {
|
|
c(h, l) && (a[l] = h[l]);
|
|
}
|
|
}
|
|
l.boxValue = function(a) {
|
|
return void 0 == a || g(a) ? a : Object(a);
|
|
};
|
|
l.toKeyValueArray = function(a) {
|
|
var h = Object.prototype.hasOwnProperty, l = [], c;
|
|
for (c in a) {
|
|
h.call(a, c) && l.push([c, a[c]]);
|
|
}
|
|
return l;
|
|
};
|
|
l.isPrototypeWriteable = function(a) {
|
|
return Object.getOwnPropertyDescriptor(a, "prototype").writable;
|
|
};
|
|
l.hasOwnProperty = c;
|
|
l.propertyIsEnumerable = function(a, h) {
|
|
return Object.prototype.propertyIsEnumerable.call(a, h);
|
|
};
|
|
l.getOwnPropertyDescriptor = function(a, h) {
|
|
return Object.getOwnPropertyDescriptor(a, h);
|
|
};
|
|
l.hasOwnGetter = function(a, h) {
|
|
var l = Object.getOwnPropertyDescriptor(a, h);
|
|
return!(!l || !l.get);
|
|
};
|
|
l.getOwnGetter = function(a, h) {
|
|
var l = Object.getOwnPropertyDescriptor(a, h);
|
|
return l ? l.get : null;
|
|
};
|
|
l.hasOwnSetter = function(a, h) {
|
|
var l = Object.getOwnPropertyDescriptor(a, h);
|
|
return!(!l || !l.set);
|
|
};
|
|
l.createObject = function(a) {
|
|
return Object.create(a);
|
|
};
|
|
l.createEmptyObject = function() {
|
|
return Object.create(null);
|
|
};
|
|
l.createMap = function() {
|
|
return Object.create(null);
|
|
};
|
|
l.createArrayMap = function() {
|
|
return[];
|
|
};
|
|
l.defineReadOnlyProperty = function(a, h, l) {
|
|
Object.defineProperty(a, h, {value:l, writable:!1, configurable:!0, enumerable:!1});
|
|
};
|
|
l.getOwnPropertyDescriptors = function(a) {
|
|
for (var h = l.createMap(), c = Object.getOwnPropertyNames(a), e = 0;e < c.length;e++) {
|
|
h[c[e]] = Object.getOwnPropertyDescriptor(a, c[e]);
|
|
}
|
|
return h;
|
|
};
|
|
l.cloneObject = function(a) {
|
|
var h = Object.create(Object.getPrototypeOf(a));
|
|
e(h, a);
|
|
return h;
|
|
};
|
|
l.copyProperties = function(a, h) {
|
|
for (var l in h) {
|
|
a[l] = h[l];
|
|
}
|
|
};
|
|
l.copyOwnProperties = e;
|
|
l.copyOwnPropertyDescriptors = function(a, h, l) {
|
|
"undefined" === typeof l && (l = !0);
|
|
for (var e in h) {
|
|
if (c(h, e)) {
|
|
var q = Object.getOwnPropertyDescriptor(h, e);
|
|
if (l || !c(a, e)) {
|
|
s.assert(q);
|
|
try {
|
|
Object.defineProperty(a, e, q);
|
|
} catch (d) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
l.getLatestGetterOrSetterPropertyDescriptor = function(a, h) {
|
|
for (var l = {};a;) {
|
|
var c = Object.getOwnPropertyDescriptor(a, h);
|
|
c && (l.get = l.get || c.get, l.set = l.set || c.set);
|
|
if (l.get && l.set) {
|
|
break;
|
|
}
|
|
a = Object.getPrototypeOf(a);
|
|
}
|
|
return l;
|
|
};
|
|
l.defineNonEnumerableGetterOrSetter = function(a, h, c, e) {
|
|
var u = l.getLatestGetterOrSetterPropertyDescriptor(a, h);
|
|
u.configurable = !0;
|
|
u.enumerable = !1;
|
|
e ? u.get = c : u.set = c;
|
|
Object.defineProperty(a, h, u);
|
|
};
|
|
l.defineNonEnumerableGetter = function(a, h, l) {
|
|
Object.defineProperty(a, h, {get:l, configurable:!0, enumerable:!1});
|
|
};
|
|
l.defineNonEnumerableSetter = function(a, h, l) {
|
|
Object.defineProperty(a, h, {set:l, configurable:!0, enumerable:!1});
|
|
};
|
|
l.defineNonEnumerableProperty = function(a, h, l) {
|
|
Object.defineProperty(a, h, {value:l, writable:!0, configurable:!0, enumerable:!1});
|
|
};
|
|
l.defineNonEnumerableForwardingProperty = function(l, h, c) {
|
|
Object.defineProperty(l, h, {get:a.makeForwardingGetter(c), set:a.makeForwardingSetter(c), writable:!0, configurable:!0, enumerable:!1});
|
|
};
|
|
l.defineNewNonEnumerableProperty = function(a, h, c) {
|
|
s.assert(!Object.prototype.hasOwnProperty.call(a, h), "Property: " + h + " already exits.");
|
|
l.defineNonEnumerableProperty(a, h, c);
|
|
};
|
|
})(b.ObjectUtilities || (b.ObjectUtilities = {}));
|
|
(function(a) {
|
|
a.makeForwardingGetter = function(a) {
|
|
return new Function('return this["' + a + '"]');
|
|
};
|
|
a.makeForwardingSetter = function(a) {
|
|
return new Function("value", 'this["' + a + '"] = value;');
|
|
};
|
|
a.bindSafely = function(a, l) {
|
|
s.assert(!a.boundTo && l);
|
|
var c = a.bind(l);
|
|
c.boundTo = l;
|
|
return c;
|
|
};
|
|
})(b.FunctionUtilities || (b.FunctionUtilities = {}));
|
|
var a = b.FunctionUtilities;
|
|
(function(a) {
|
|
function c(a) {
|
|
return "string" === typeof a ? '"' + a + '"' : "number" === typeof a || "boolean" === typeof a ? String(a) : a instanceof Array ? "[] " + a.length : typeof a;
|
|
}
|
|
var e = b.Debug.assert;
|
|
a.repeatString = function(a, h) {
|
|
for (var l = "", c = 0;c < h;c++) {
|
|
l += a;
|
|
}
|
|
return l;
|
|
};
|
|
a.memorySizeToString = function(a) {
|
|
a |= 0;
|
|
return 1024 > a ? a + " B" : 1048576 > a ? (a / 1024).toFixed(2) + "KB" : (a / 1048576).toFixed(2) + "MB";
|
|
};
|
|
a.toSafeString = c;
|
|
a.toSafeArrayString = function(a) {
|
|
for (var h = [], l = 0;l < a.length;l++) {
|
|
h.push(c(a[l]));
|
|
}
|
|
return h.join(", ");
|
|
};
|
|
a.utf8decode = function(a) {
|
|
for (var h = new Uint8Array(4 * a.length), l = 0, c = 0, e = a.length;c < e;c++) {
|
|
var r = a.charCodeAt(c);
|
|
if (127 >= r) {
|
|
h[l++] = r;
|
|
} else {
|
|
if (55296 <= r && 56319 >= r) {
|
|
var u = a.charCodeAt(c + 1);
|
|
56320 <= u && 57343 >= u && (r = ((r & 1023) << 10) + (u & 1023) + 65536, ++c);
|
|
}
|
|
0 !== (r & 4292870144) ? (h[l++] = 248 | r >>> 24 & 3, h[l++] = 128 | r >>> 18 & 63, h[l++] = 128 | r >>> 12 & 63, h[l++] = 128 | r >>> 6 & 63) : 0 !== (r & 4294901760) ? (h[l++] = 240 | r >>> 18 & 7, h[l++] = 128 | r >>> 12 & 63, h[l++] = 128 | r >>> 6 & 63) : 0 !== (r & 4294965248) ? (h[l++] = 224 | r >>> 12 & 15, h[l++] = 128 | r >>> 6 & 63) : h[l++] = 192 | r >>> 6 & 31;
|
|
h[l++] = 128 | r & 63;
|
|
}
|
|
}
|
|
return h.subarray(0, l);
|
|
};
|
|
a.utf8encode = function(a) {
|
|
for (var h = 0, l = "";h < a.length;) {
|
|
var c = a[h++] & 255;
|
|
if (127 >= c) {
|
|
l += String.fromCharCode(c);
|
|
} else {
|
|
var e = 192, r = 5;
|
|
do {
|
|
if ((c & (e >> 1 | 128)) === e) {
|
|
break;
|
|
}
|
|
e = e >> 1 | 128;
|
|
--r;
|
|
} while (0 <= r);
|
|
if (0 >= r) {
|
|
l += String.fromCharCode(c);
|
|
} else {
|
|
for (var c = c & (1 << r) - 1, e = !1, u = 5;u >= r;--u) {
|
|
var q = a[h++];
|
|
if (128 != (q & 192)) {
|
|
e = !0;
|
|
break;
|
|
}
|
|
c = c << 6 | q & 63;
|
|
}
|
|
if (e) {
|
|
for (r = h - (7 - u);r < h;++r) {
|
|
l += String.fromCharCode(a[r] & 255);
|
|
}
|
|
} else {
|
|
l = 65536 <= c ? l + String.fromCharCode(c - 65536 >> 10 & 1023 | 55296, c & 1023 | 56320) : l + String.fromCharCode(c);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return l;
|
|
};
|
|
a.base64ArrayBuffer = function(a) {
|
|
var h = "";
|
|
a = new Uint8Array(a);
|
|
for (var l = a.byteLength, c = l % 3, l = l - c, e, r, u, q, d = 0;d < l;d += 3) {
|
|
q = a[d] << 16 | a[d + 1] << 8 | a[d + 2], e = (q & 16515072) >> 18, r = (q & 258048) >> 12, u = (q & 4032) >> 6, q &= 63, h += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[e] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[r] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[u] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[q];
|
|
}
|
|
1 == c ? (q = a[l], h += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(q & 252) >> 2] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(q & 3) << 4] + "==") : 2 == c && (q = a[l] << 8 | a[l + 1], h += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(q & 64512) >> 10] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(q & 1008) >> 4] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(q & 15) <<
|
|
2] + "=");
|
|
return h;
|
|
};
|
|
a.escapeString = function(a) {
|
|
void 0 !== a && (a = a.replace(/[^\w$]/gi, "$"), /^\d/.test(a) && (a = "$" + a));
|
|
return a;
|
|
};
|
|
a.fromCharCodeArray = function(a) {
|
|
for (var h = "", l = 0;l < a.length;l += 16384) {
|
|
var c = Math.min(a.length - l, 16384), h = h + String.fromCharCode.apply(null, a.subarray(l, l + c))
|
|
}
|
|
return h;
|
|
};
|
|
a.variableLengthEncodeInt32 = function(h) {
|
|
var c = 32 - Math.clz32(h);
|
|
e(32 >= c, c);
|
|
for (var r = Math.ceil(c / 6), u = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$_"[r], q = r - 1;0 <= q;q--) {
|
|
u += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$_"[h >> 6 * q & 63];
|
|
}
|
|
e(a.variableLengthDecodeInt32(u) === h, h + " : " + u + " - " + r + " bits: " + c);
|
|
return u;
|
|
};
|
|
a.toEncoding = function(a) {
|
|
return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$_"[a];
|
|
};
|
|
a.fromEncoding = function(a) {
|
|
a = a.charCodeAt(0);
|
|
if (65 <= a && 90 >= a) {
|
|
return a - 65;
|
|
}
|
|
if (97 <= a && 122 >= a) {
|
|
return a - 71;
|
|
}
|
|
if (48 <= a && 57 >= a) {
|
|
return a + 4;
|
|
}
|
|
if (36 === a) {
|
|
return 62;
|
|
}
|
|
if (95 === a) {
|
|
return 63;
|
|
}
|
|
e(!1, "Invalid Encoding");
|
|
};
|
|
a.variableLengthDecodeInt32 = function(h) {
|
|
for (var c = a.fromEncoding(h[0]), e = 0, r = 0;r < c;r++) {
|
|
var u = 6 * (c - r - 1), e = e | a.fromEncoding(h[1 + r]) << u
|
|
}
|
|
return e;
|
|
};
|
|
a.trimMiddle = function(a, h) {
|
|
if (a.length <= h) {
|
|
return a;
|
|
}
|
|
var l = h >> 1, c = h - l - 1;
|
|
return a.substr(0, l) + "\u2026" + a.substr(a.length - c, c);
|
|
};
|
|
a.multiple = function(a, h) {
|
|
for (var l = "", c = 0;c < h;c++) {
|
|
l += a;
|
|
}
|
|
return l;
|
|
};
|
|
a.indexOfAny = function(a, h, l) {
|
|
for (var c = a.length, e = 0;e < h.length;e++) {
|
|
var r = a.indexOf(h[e], l);
|
|
0 <= r && (c = Math.min(c, r));
|
|
}
|
|
return c === a.length ? -1 : c;
|
|
};
|
|
var r = Array(3), h = Array(4), q = Array(5), d = Array(6), p = Array(7), n = Array(8), m = Array(9);
|
|
a.concat3 = function(a, h, l) {
|
|
r[0] = a;
|
|
r[1] = h;
|
|
r[2] = l;
|
|
return r.join("");
|
|
};
|
|
a.concat4 = function(a, l, c, e) {
|
|
h[0] = a;
|
|
h[1] = l;
|
|
h[2] = c;
|
|
h[3] = e;
|
|
return h.join("");
|
|
};
|
|
a.concat5 = function(a, h, l, c, e) {
|
|
q[0] = a;
|
|
q[1] = h;
|
|
q[2] = l;
|
|
q[3] = c;
|
|
q[4] = e;
|
|
return q.join("");
|
|
};
|
|
a.concat6 = function(a, h, l, c, e, r) {
|
|
d[0] = a;
|
|
d[1] = h;
|
|
d[2] = l;
|
|
d[3] = c;
|
|
d[4] = e;
|
|
d[5] = r;
|
|
return d.join("");
|
|
};
|
|
a.concat7 = function(a, h, l, c, e, r, u) {
|
|
p[0] = a;
|
|
p[1] = h;
|
|
p[2] = l;
|
|
p[3] = c;
|
|
p[4] = e;
|
|
p[5] = r;
|
|
p[6] = u;
|
|
return p.join("");
|
|
};
|
|
a.concat8 = function(a, h, l, c, e, r, u, q) {
|
|
n[0] = a;
|
|
n[1] = h;
|
|
n[2] = l;
|
|
n[3] = c;
|
|
n[4] = e;
|
|
n[5] = r;
|
|
n[6] = u;
|
|
n[7] = q;
|
|
return n.join("");
|
|
};
|
|
a.concat9 = function(a, h, l, c, e, r, u, q, d) {
|
|
m[0] = a;
|
|
m[1] = h;
|
|
m[2] = l;
|
|
m[3] = c;
|
|
m[4] = e;
|
|
m[5] = r;
|
|
m[6] = u;
|
|
m[7] = q;
|
|
m[8] = d;
|
|
return m.join("");
|
|
};
|
|
})(b.StringUtilities || (b.StringUtilities = {}));
|
|
(function(a) {
|
|
var c = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]), e = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,
|
|
643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,
|
|
-145523070, -1120210379, 718787259, -343485551]);
|
|
a.hashBytesTo32BitsMD5 = function(a, h, l) {
|
|
var q = 1732584193, d = -271733879, p = -1732584194, n = 271733878, b = l + 72 & -64, m = new Uint8Array(b), f;
|
|
for (f = 0;f < l;++f) {
|
|
m[f] = a[h++];
|
|
}
|
|
m[f++] = 128;
|
|
for (a = b - 8;f < a;) {
|
|
m[f++] = 0;
|
|
}
|
|
m[f++] = l << 3 & 255;
|
|
m[f++] = l >> 5 & 255;
|
|
m[f++] = l >> 13 & 255;
|
|
m[f++] = l >> 21 & 255;
|
|
m[f++] = l >>> 29 & 255;
|
|
m[f++] = 0;
|
|
m[f++] = 0;
|
|
m[f++] = 0;
|
|
a = new Int32Array(16);
|
|
for (f = 0;f < b;) {
|
|
for (l = 0;16 > l;++l, f += 4) {
|
|
a[l] = m[f] | m[f + 1] << 8 | m[f + 2] << 16 | m[f + 3] << 24;
|
|
}
|
|
var g = q;
|
|
h = d;
|
|
var s = p, k = n, t, z;
|
|
for (l = 0;64 > l;++l) {
|
|
16 > l ? (t = h & s | ~h & k, z = l) : 32 > l ? (t = k & h | ~k & s, z = 5 * l + 1 & 15) : 48 > l ? (t = h ^ s ^ k, z = 3 * l + 5 & 15) : (t = s ^ (h | ~k), z = 7 * l & 15);
|
|
var P = k, g = g + t + e[l] + a[z] | 0;
|
|
t = c[l];
|
|
k = s;
|
|
s = h;
|
|
h = h + (g << t | g >>> 32 - t) | 0;
|
|
g = P;
|
|
}
|
|
q = q + g | 0;
|
|
d = d + h | 0;
|
|
p = p + s | 0;
|
|
n = n + k | 0;
|
|
}
|
|
return q;
|
|
};
|
|
a.hashBytesTo32BitsAdler = function(a, h, l) {
|
|
var c = 1, e = 0;
|
|
for (l = h + l;h < l;++h) {
|
|
c = (c + (a[h] & 255)) % 65521, e = (e + c) % 65521;
|
|
}
|
|
return e << 16 | c;
|
|
};
|
|
})(b.HashUtilities || (b.HashUtilities = {}));
|
|
var c = function() {
|
|
function a() {
|
|
}
|
|
a.seed = function(c) {
|
|
a._state[0] = c;
|
|
a._state[1] = c;
|
|
};
|
|
a.next = function() {
|
|
var a = this._state, l = Math.imul(18273, a[0] & 65535) + (a[0] >>> 16) | 0;
|
|
a[0] = l;
|
|
var c = Math.imul(36969, a[1] & 65535) + (a[1] >>> 16) | 0;
|
|
a[1] = c;
|
|
a = (l << 16) + (c & 65535) | 0;
|
|
return 2.3283064365386963E-10 * (0 > a ? a + 4294967296 : a);
|
|
};
|
|
a._state = new Uint32Array([57005, 48879]);
|
|
return a;
|
|
}();
|
|
b.Random = c;
|
|
Math.random = function() {
|
|
return c.next();
|
|
};
|
|
(function() {
|
|
function a() {
|
|
this.id = "$weakmap" + c++;
|
|
}
|
|
if ("function" !== typeof jsGlobal.WeakMap) {
|
|
var c = 0;
|
|
a.prototype = {has:function(a) {
|
|
return a.hasOwnProperty(this.id);
|
|
}, get:function(a, l) {
|
|
return a.hasOwnProperty(this.id) ? a[this.id] : l;
|
|
}, set:function(a, l) {
|
|
Object.defineProperty(a, this.id, {value:l, enumerable:!1, configurable:!0});
|
|
}};
|
|
jsGlobal.WeakMap = a;
|
|
}
|
|
})();
|
|
d = function() {
|
|
function a() {
|
|
"undefined" !== typeof netscape && netscape.security.PrivilegeManager ? this._map = new WeakMap : this._list = [];
|
|
}
|
|
a.prototype.clear = function() {
|
|
this._map ? this._map.clear() : this._list.length = 0;
|
|
};
|
|
a.prototype.push = function(a) {
|
|
this._map ? this._map.set(a, null) : this._list.push(a);
|
|
};
|
|
a.prototype.forEach = function(a) {
|
|
if (this._map) {
|
|
"undefined" !== typeof netscape && netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"), Components.utils.nondeterministicGetWeakMapKeys(this._map).forEach(function(h) {
|
|
0 !== h._referenceCount && a(h);
|
|
});
|
|
} else {
|
|
for (var l = this._list, c = 0, h = 0;h < l.length;h++) {
|
|
var e = l[h];
|
|
0 === e._referenceCount ? c++ : a(e);
|
|
}
|
|
if (16 < c && c > l.length >> 2) {
|
|
c = [];
|
|
for (h = 0;h < l.length;h++) {
|
|
0 < l[h]._referenceCount && c.push(l[h]);
|
|
}
|
|
this._list = c;
|
|
}
|
|
}
|
|
};
|
|
Object.defineProperty(a.prototype, "length", {get:function() {
|
|
return this._map ? -1 : this._list.length;
|
|
}, enumerable:!0, configurable:!0});
|
|
return a;
|
|
}();
|
|
b.WeakList = d;
|
|
(function(a) {
|
|
a.pow2 = function(a) {
|
|
return a === (a | 0) ? 0 > a ? 1 / (1 << -a) : 1 << a : Math.pow(2, a);
|
|
};
|
|
a.clamp = function(a, l, c) {
|
|
return Math.max(l, Math.min(c, a));
|
|
};
|
|
a.roundHalfEven = function(a) {
|
|
if (.5 === Math.abs(a % 1)) {
|
|
var l = Math.floor(a);
|
|
return 0 === l % 2 ? l : Math.ceil(a);
|
|
}
|
|
return Math.round(a);
|
|
};
|
|
a.epsilonEquals = function(a, l) {
|
|
return 1E-7 > Math.abs(a - l);
|
|
};
|
|
})(b.NumberUtilities || (b.NumberUtilities = {}));
|
|
(function(a) {
|
|
a[a.MaxU16 = 65535] = "MaxU16";
|
|
a[a.MaxI16 = 32767] = "MaxI16";
|
|
a[a.MinI16 = -32768] = "MinI16";
|
|
})(b.Numbers || (b.Numbers = {}));
|
|
(function(a) {
|
|
function c(a) {
|
|
return 256 * a << 16 >> 16;
|
|
}
|
|
var e = new ArrayBuffer(8);
|
|
a.i8 = new Int8Array(e);
|
|
a.u8 = new Uint8Array(e);
|
|
a.i32 = new Int32Array(e);
|
|
a.f32 = new Float32Array(e);
|
|
a.f64 = new Float64Array(e);
|
|
a.nativeLittleEndian = 1 === (new Int8Array((new Int32Array([1])).buffer))[0];
|
|
a.floatToInt32 = function(c) {
|
|
a.f32[0] = c;
|
|
return a.i32[0];
|
|
};
|
|
a.int32ToFloat = function(c) {
|
|
a.i32[0] = c;
|
|
return a.f32[0];
|
|
};
|
|
a.swap16 = function(a) {
|
|
return(a & 255) << 8 | a >> 8 & 255;
|
|
};
|
|
a.swap32 = function(a) {
|
|
return(a & 255) << 24 | (a & 65280) << 8 | a >> 8 & 65280 | a >> 24 & 255;
|
|
};
|
|
a.toS8U8 = c;
|
|
a.fromS8U8 = function(a) {
|
|
return a / 256;
|
|
};
|
|
a.clampS8U8 = function(a) {
|
|
return c(a) / 256;
|
|
};
|
|
a.toS16 = function(a) {
|
|
return a << 16 >> 16;
|
|
};
|
|
a.bitCount = function(a) {
|
|
a -= a >> 1 & 1431655765;
|
|
a = (a & 858993459) + (a >> 2 & 858993459);
|
|
return 16843009 * (a + (a >> 4) & 252645135) >> 24;
|
|
};
|
|
a.ones = function(a) {
|
|
a -= a >> 1 & 1431655765;
|
|
a = (a & 858993459) + (a >> 2 & 858993459);
|
|
return 16843009 * (a + (a >> 4) & 252645135) >> 24;
|
|
};
|
|
a.trailingZeros = function(c) {
|
|
return a.ones((c & -c) - 1);
|
|
};
|
|
a.getFlags = function(a, h) {
|
|
var c = "";
|
|
for (a = 0;a < h.length;a++) {
|
|
a & 1 << a && (c += h[a] + " ");
|
|
}
|
|
return 0 === c.length ? "" : c.trim();
|
|
};
|
|
a.isPowerOfTwo = function(a) {
|
|
return a && 0 === (a & a - 1);
|
|
};
|
|
a.roundToMultipleOfFour = function(a) {
|
|
return a + 3 & -4;
|
|
};
|
|
a.nearestPowerOfTwo = function(a) {
|
|
a--;
|
|
a |= a >> 1;
|
|
a |= a >> 2;
|
|
a |= a >> 4;
|
|
a |= a >> 8;
|
|
a |= a >> 16;
|
|
a++;
|
|
return a;
|
|
};
|
|
a.roundToMultipleOfPowerOfTwo = function(a, h) {
|
|
var c = (1 << h) - 1;
|
|
return a + c & ~c;
|
|
};
|
|
Math.imul || (Math.imul = function(a, h) {
|
|
var c = a & 65535, l = h & 65535;
|
|
return c * l + ((a >>> 16 & 65535) * l + c * (h >>> 16 & 65535) << 16 >>> 0) | 0;
|
|
});
|
|
Math.clz32 || (Math.clz32 = function(c) {
|
|
c |= c >> 1;
|
|
c |= c >> 2;
|
|
c |= c >> 4;
|
|
c |= c >> 8;
|
|
return 32 - a.ones(c | c >> 16);
|
|
});
|
|
})(b.IntegerUtilities || (b.IntegerUtilities = {}));
|
|
var n = b.IntegerUtilities;
|
|
(function(a) {
|
|
function c(a, l, h, e, u, q) {
|
|
return(h - a) * (q - l) - (e - l) * (u - a);
|
|
}
|
|
a.pointInPolygon = function(a, c, h) {
|
|
for (var l = 0, e = h.length - 2, u = 0;u < e;u += 2) {
|
|
var q = h[u + 0], d = h[u + 1], p = h[u + 2], n = h[u + 3];
|
|
(d <= c && n > c || d > c && n <= c) && a < q + (c - d) / (n - d) * (p - q) && l++;
|
|
}
|
|
return 1 === (l & 1);
|
|
};
|
|
a.signedArea = c;
|
|
a.counterClockwise = function(a, l, h, e, q, d) {
|
|
return 0 < c(a, l, h, e, q, d);
|
|
};
|
|
a.clockwise = function(a, l, h, e, q, d) {
|
|
return 0 > c(a, l, h, e, q, d);
|
|
};
|
|
a.pointInPolygonInt32 = function(a, c, h) {
|
|
a |= 0;
|
|
c |= 0;
|
|
for (var l = 0, e = h.length - 2, u = 0;u < e;u += 2) {
|
|
var q = h[u + 0], d = h[u + 1], p = h[u + 2], n = h[u + 3];
|
|
(d <= c && n > c || d > c && n <= c) && a < q + (c - d) / (n - d) * (p - q) && l++;
|
|
}
|
|
return 1 === (l & 1);
|
|
};
|
|
})(b.GeometricUtilities || (b.GeometricUtilities = {}));
|
|
(function(a) {
|
|
a[a.Error = 1] = "Error";
|
|
a[a.Warn = 2] = "Warn";
|
|
a[a.Debug = 4] = "Debug";
|
|
a[a.Log = 8] = "Log";
|
|
a[a.Info = 16] = "Info";
|
|
a[a.All = 31] = "All";
|
|
})(b.LogLevel || (b.LogLevel = {}));
|
|
d = function() {
|
|
function a(c, e) {
|
|
"undefined" === typeof c && (c = !1);
|
|
this._tab = " ";
|
|
this._padding = "";
|
|
this._suppressOutput = c;
|
|
this._out = e || a._consoleOut;
|
|
this._outNoNewline = e || a._consoleOutNoNewline;
|
|
}
|
|
a.prototype.write = function(a, c) {
|
|
"undefined" === typeof a && (a = "");
|
|
"undefined" === typeof c && (c = !1);
|
|
this._suppressOutput || this._outNoNewline((c ? this._padding : "") + a);
|
|
};
|
|
a.prototype.writeLn = function(a) {
|
|
"undefined" === typeof a && (a = "");
|
|
this._suppressOutput || this._out(this._padding + a);
|
|
};
|
|
a.prototype.writeTimeLn = function(a) {
|
|
"undefined" === typeof a && (a = "");
|
|
this._suppressOutput || this._out(this._padding + performance.now().toFixed(2) + " " + a);
|
|
};
|
|
a.prototype.writeComment = function(a) {
|
|
a = a.split("\n");
|
|
if (1 === a.length) {
|
|
this.writeLn("// " + a[0]);
|
|
} else {
|
|
this.writeLn("/**");
|
|
for (var c = 0;c < a.length;c++) {
|
|
this.writeLn(" * " + a[c]);
|
|
}
|
|
this.writeLn(" */");
|
|
}
|
|
};
|
|
a.prototype.writeLns = function(a) {
|
|
a = a.split("\n");
|
|
for (var c = 0;c < a.length;c++) {
|
|
this.writeLn(a[c]);
|
|
}
|
|
};
|
|
a.prototype.errorLn = function(c) {
|
|
a.logLevel & 1 && this.boldRedLn(c);
|
|
};
|
|
a.prototype.warnLn = function(c) {
|
|
a.logLevel & 2 && this.yellowLn(c);
|
|
};
|
|
a.prototype.debugLn = function(c) {
|
|
a.logLevel & 4 && this.purpleLn(c);
|
|
};
|
|
a.prototype.logLn = function(c) {
|
|
a.logLevel & 8 && this.writeLn(c);
|
|
};
|
|
a.prototype.infoLn = function(c) {
|
|
a.logLevel & 16 && this.writeLn(c);
|
|
};
|
|
a.prototype.yellowLn = function(c) {
|
|
this.colorLn(a.YELLOW, c);
|
|
};
|
|
a.prototype.greenLn = function(c) {
|
|
this.colorLn(a.GREEN, c);
|
|
};
|
|
a.prototype.boldRedLn = function(c) {
|
|
this.colorLn(a.BOLD_RED, c);
|
|
};
|
|
a.prototype.redLn = function(c) {
|
|
this.colorLn(a.RED, c);
|
|
};
|
|
a.prototype.purpleLn = function(c) {
|
|
this.colorLn(a.PURPLE, c);
|
|
};
|
|
a.prototype.colorLn = function(c, e) {
|
|
this._suppressOutput || (inBrowser ? this._out(this._padding + e) : this._out(this._padding + c + e + a.ENDC));
|
|
};
|
|
a.prototype.redLns = function(c) {
|
|
this.colorLns(a.RED, c);
|
|
};
|
|
a.prototype.colorLns = function(a, c) {
|
|
for (var l = c.split("\n"), h = 0;h < l.length;h++) {
|
|
this.colorLn(a, l[h]);
|
|
}
|
|
};
|
|
a.prototype.enter = function(a) {
|
|
this._suppressOutput || this._out(this._padding + a);
|
|
this.indent();
|
|
};
|
|
a.prototype.leaveAndEnter = function() {
|
|
this.leave("Slots");
|
|
this.indent();
|
|
};
|
|
a.prototype.leave = function(a) {
|
|
this.outdent();
|
|
this._suppressOutput || this._out(this._padding + a);
|
|
};
|
|
a.prototype.indent = function() {
|
|
this._padding += this._tab;
|
|
};
|
|
a.prototype.outdent = function() {
|
|
0 < this._padding.length && (this._padding = this._padding.substring(0, this._padding.length - this._tab.length));
|
|
};
|
|
a.prototype.writeArray = function(a, c, l) {
|
|
"undefined" === typeof c && (c = !1);
|
|
"undefined" === typeof l && (l = !1);
|
|
c = c || !1;
|
|
for (var h = 0, e = a.length;h < e;h++) {
|
|
var q = "";
|
|
c && (q = null === a[h] ? "null" : void 0 === a[h] ? "undefined" : a[h].constructor.name, q += " ");
|
|
var d = l ? "" : ("" + h).padRight(" ", 4);
|
|
this.writeLn(d + q + a[h]);
|
|
}
|
|
};
|
|
a.PURPLE = "\u001b[94m";
|
|
a.YELLOW = "\u001b[93m";
|
|
a.GREEN = "\u001b[92m";
|
|
a.RED = "\u001b[91m";
|
|
a.BOLD_RED = "\u001b[1;91m";
|
|
a.ENDC = "\u001b[0m";
|
|
a.logLevel = 31;
|
|
a._consoleOut = inBrowser ? console.info.bind(console) : print;
|
|
a._consoleOutNoNewline = inBrowser ? console.info.bind(console) : putstr;
|
|
return a;
|
|
}();
|
|
b.IndentingWriter = d;
|
|
var p = function() {
|
|
return function(a, c) {
|
|
this.value = a;
|
|
this.next = c;
|
|
};
|
|
}(), d = function() {
|
|
function a(c) {
|
|
s.assert(c);
|
|
this._compare = c;
|
|
this._head = null;
|
|
this._length = 0;
|
|
}
|
|
a.prototype.push = function(a) {
|
|
s.assert(void 0 !== a);
|
|
this._length++;
|
|
if (this._head) {
|
|
var c = this._head, l = null;
|
|
a = new p(a, null);
|
|
for (var h = this._compare;c;) {
|
|
if (0 < h(c.value, a.value)) {
|
|
l ? (a.next = c, l.next = a) : (a.next = this._head, this._head = a);
|
|
return;
|
|
}
|
|
l = c;
|
|
c = c.next;
|
|
}
|
|
l.next = a;
|
|
} else {
|
|
this._head = new p(a, null);
|
|
}
|
|
};
|
|
a.prototype.forEach = function(c) {
|
|
for (var e = this._head, r = null;e;) {
|
|
var h = c(e.value);
|
|
if (h === a.RETURN) {
|
|
break;
|
|
} else {
|
|
h === a.DELETE ? e = r ? r.next = e.next : this._head = this._head.next : (r = e, e = e.next);
|
|
}
|
|
}
|
|
};
|
|
a.prototype.isEmpty = function() {
|
|
return!this._head;
|
|
};
|
|
a.prototype.pop = function() {
|
|
if (this._head) {
|
|
this._length--;
|
|
var a = this._head;
|
|
this._head = this._head.next;
|
|
return a.value;
|
|
}
|
|
};
|
|
a.prototype.contains = function(a) {
|
|
for (var c = this._head;c;) {
|
|
if (c.value === a) {
|
|
return!0;
|
|
}
|
|
c = c.next;
|
|
}
|
|
return!1;
|
|
};
|
|
a.prototype.toString = function() {
|
|
for (var a = "[", c = this._head;c;) {
|
|
a += c.value.toString(), (c = c.next) && (a += ",");
|
|
}
|
|
return a + "]";
|
|
};
|
|
a.RETURN = 1;
|
|
a.DELETE = 2;
|
|
return a;
|
|
}();
|
|
b.SortedList = d;
|
|
d = function() {
|
|
function a(c, l) {
|
|
"undefined" === typeof l && (l = 12);
|
|
this.start = this.index = 0;
|
|
this._size = 1 << l;
|
|
this._mask = this._size - 1;
|
|
this.array = new c(this._size);
|
|
}
|
|
a.prototype.get = function(a) {
|
|
return this.array[a];
|
|
};
|
|
a.prototype.forEachInReverse = function(a) {
|
|
if (!this.isEmpty()) {
|
|
for (var c = 0 === this.index ? this._size - 1 : this.index - 1, l = this.start - 1 & this._mask;c !== l && !a(this.array[c], c);) {
|
|
c = 0 === c ? this._size - 1 : c - 1;
|
|
}
|
|
}
|
|
};
|
|
a.prototype.write = function(a) {
|
|
this.array[this.index] = a;
|
|
this.index = this.index + 1 & this._mask;
|
|
this.index === this.start && (this.start = this.start + 1 & this._mask);
|
|
};
|
|
a.prototype.isFull = function() {
|
|
return(this.index + 1 & this._mask) === this.start;
|
|
};
|
|
a.prototype.isEmpty = function() {
|
|
return this.index === this.start;
|
|
};
|
|
a.prototype.reset = function() {
|
|
this.start = this.index = 0;
|
|
};
|
|
return a;
|
|
}();
|
|
b.CircularBuffer = d;
|
|
(function(a) {
|
|
function c(h) {
|
|
return h + (a.BITS_PER_WORD - 1) >> a.ADDRESS_BITS_PER_WORD << a.ADDRESS_BITS_PER_WORD;
|
|
}
|
|
function e(a, h) {
|
|
a = a || "1";
|
|
h = h || "0";
|
|
for (var c = "", l = 0;l < length;l++) {
|
|
c += this.get(l) ? a : h;
|
|
}
|
|
return c;
|
|
}
|
|
function r(a) {
|
|
for (var h = [], c = 0;c < length;c++) {
|
|
this.get(c) && h.push(a ? a[c] : c);
|
|
}
|
|
return h.join(", ");
|
|
}
|
|
var h = b.Debug.assert;
|
|
a.ADDRESS_BITS_PER_WORD = 5;
|
|
a.BITS_PER_WORD = 1 << a.ADDRESS_BITS_PER_WORD;
|
|
a.BIT_INDEX_MASK = a.BITS_PER_WORD - 1;
|
|
var q = function() {
|
|
function e(h) {
|
|
this.size = c(h);
|
|
this.dirty = this.count = 0;
|
|
this.length = h;
|
|
this.bits = new Uint32Array(this.size >> a.ADDRESS_BITS_PER_WORD);
|
|
}
|
|
e.prototype.recount = function() {
|
|
if (this.dirty) {
|
|
for (var a = this.bits, h = 0, c = 0, e = a.length;c < e;c++) {
|
|
var l = a[c], l = l - (l >> 1 & 1431655765), l = (l & 858993459) + (l >> 2 & 858993459), h = h + (16843009 * (l + (l >> 4) & 252645135) >> 24)
|
|
}
|
|
this.count = h;
|
|
this.dirty = 0;
|
|
}
|
|
};
|
|
e.prototype.set = function(h) {
|
|
var c = h >> a.ADDRESS_BITS_PER_WORD, e = this.bits[c];
|
|
h = e | 1 << (h & a.BIT_INDEX_MASK);
|
|
this.bits[c] = h;
|
|
this.dirty |= e ^ h;
|
|
};
|
|
e.prototype.setAll = function() {
|
|
for (var a = this.bits, h = 0, c = a.length;h < c;h++) {
|
|
a[h] = 4294967295;
|
|
}
|
|
this.count = this.size;
|
|
this.dirty = 0;
|
|
};
|
|
e.prototype.assign = function(a) {
|
|
this.count = a.count;
|
|
this.dirty = a.dirty;
|
|
this.size = a.size;
|
|
for (var h = 0, c = this.bits.length;h < c;h++) {
|
|
this.bits[h] = a.bits[h];
|
|
}
|
|
};
|
|
e.prototype.clear = function(h) {
|
|
var c = h >> a.ADDRESS_BITS_PER_WORD, e = this.bits[c];
|
|
h = e & ~(1 << (h & a.BIT_INDEX_MASK));
|
|
this.bits[c] = h;
|
|
this.dirty |= e ^ h;
|
|
};
|
|
e.prototype.get = function(h) {
|
|
return 0 !== (this.bits[h >> a.ADDRESS_BITS_PER_WORD] & 1 << (h & a.BIT_INDEX_MASK));
|
|
};
|
|
e.prototype.clearAll = function() {
|
|
for (var a = this.bits, h = 0, c = a.length;h < c;h++) {
|
|
a[h] = 0;
|
|
}
|
|
this.dirty = this.count = 0;
|
|
};
|
|
e.prototype._union = function(a) {
|
|
var h = this.dirty, c = this.bits;
|
|
a = a.bits;
|
|
for (var e = 0, l = c.length;e < l;e++) {
|
|
var r = c[e], q = r | a[e];
|
|
c[e] = q;
|
|
h |= r ^ q;
|
|
}
|
|
this.dirty = h;
|
|
};
|
|
e.prototype.intersect = function(a) {
|
|
var h = this.dirty, c = this.bits;
|
|
a = a.bits;
|
|
for (var e = 0, l = c.length;e < l;e++) {
|
|
var r = c[e], q = r & a[e];
|
|
c[e] = q;
|
|
h |= r ^ q;
|
|
}
|
|
this.dirty = h;
|
|
};
|
|
e.prototype.subtract = function(a) {
|
|
var h = this.dirty, c = this.bits;
|
|
a = a.bits;
|
|
for (var e = 0, l = c.length;e < l;e++) {
|
|
var r = c[e], q = r & ~a[e];
|
|
c[e] = q;
|
|
h |= r ^ q;
|
|
}
|
|
this.dirty = h;
|
|
};
|
|
e.prototype.negate = function() {
|
|
for (var a = this.dirty, h = this.bits, c = 0, e = h.length;c < e;c++) {
|
|
var l = h[c], r = ~l;
|
|
h[c] = r;
|
|
a |= l ^ r;
|
|
}
|
|
this.dirty = a;
|
|
};
|
|
e.prototype.forEach = function(c) {
|
|
h(c);
|
|
for (var e = this.bits, r = 0, q = e.length;r < q;r++) {
|
|
var u = e[r];
|
|
if (u) {
|
|
for (var d = 0;d < a.BITS_PER_WORD;d++) {
|
|
u & 1 << d && c(r * a.BITS_PER_WORD + d);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
e.prototype.toArray = function() {
|
|
for (var h = [], c = this.bits, e = 0, r = c.length;e < r;e++) {
|
|
var q = c[e];
|
|
if (q) {
|
|
for (var u = 0;u < a.BITS_PER_WORD;u++) {
|
|
q & 1 << u && h.push(e * a.BITS_PER_WORD + u);
|
|
}
|
|
}
|
|
}
|
|
return h;
|
|
};
|
|
e.prototype.equals = function(a) {
|
|
if (this.size !== a.size) {
|
|
return!1;
|
|
}
|
|
var h = this.bits;
|
|
a = a.bits;
|
|
for (var c = 0, e = h.length;c < e;c++) {
|
|
if (h[c] !== a[c]) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
e.prototype.contains = function(a) {
|
|
if (this.size !== a.size) {
|
|
return!1;
|
|
}
|
|
var h = this.bits;
|
|
a = a.bits;
|
|
for (var c = 0, e = h.length;c < e;c++) {
|
|
if ((h[c] | a[c]) !== h[c]) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
e.prototype.isEmpty = function() {
|
|
this.recount();
|
|
return 0 === this.count;
|
|
};
|
|
e.prototype.clone = function() {
|
|
var a = new e(this.length);
|
|
a._union(this);
|
|
return a;
|
|
};
|
|
return e;
|
|
}();
|
|
a.Uint32ArrayBitSet = q;
|
|
var d = function() {
|
|
function e(a) {
|
|
this.dirty = this.count = 0;
|
|
this.size = c(a);
|
|
this.bits = 0;
|
|
this.singleWord = !0;
|
|
this.length = a;
|
|
}
|
|
e.prototype.recount = function() {
|
|
if (this.dirty) {
|
|
var a = this.bits, a = a - (a >> 1 & 1431655765), a = (a & 858993459) + (a >> 2 & 858993459);
|
|
this.count = 0 + (16843009 * (a + (a >> 4) & 252645135) >> 24);
|
|
this.dirty = 0;
|
|
}
|
|
};
|
|
e.prototype.set = function(h) {
|
|
var c = this.bits;
|
|
this.bits = h = c | 1 << (h & a.BIT_INDEX_MASK);
|
|
this.dirty |= c ^ h;
|
|
};
|
|
e.prototype.setAll = function() {
|
|
this.bits = 4294967295;
|
|
this.count = this.size;
|
|
this.dirty = 0;
|
|
};
|
|
e.prototype.assign = function(a) {
|
|
this.count = a.count;
|
|
this.dirty = a.dirty;
|
|
this.size = a.size;
|
|
this.bits = a.bits;
|
|
};
|
|
e.prototype.clear = function(h) {
|
|
var c = this.bits;
|
|
this.bits = h = c & ~(1 << (h & a.BIT_INDEX_MASK));
|
|
this.dirty |= c ^ h;
|
|
};
|
|
e.prototype.get = function(h) {
|
|
return 0 !== (this.bits & 1 << (h & a.BIT_INDEX_MASK));
|
|
};
|
|
e.prototype.clearAll = function() {
|
|
this.dirty = this.count = this.bits = 0;
|
|
};
|
|
e.prototype._union = function(a) {
|
|
var h = this.bits;
|
|
this.bits = a = h | a.bits;
|
|
this.dirty = h ^ a;
|
|
};
|
|
e.prototype.intersect = function(a) {
|
|
var h = this.bits;
|
|
this.bits = a = h & a.bits;
|
|
this.dirty = h ^ a;
|
|
};
|
|
e.prototype.subtract = function(a) {
|
|
var h = this.bits;
|
|
this.bits = a = h & ~a.bits;
|
|
this.dirty = h ^ a;
|
|
};
|
|
e.prototype.negate = function() {
|
|
var a = this.bits, h = ~a;
|
|
this.bits = h;
|
|
this.dirty = a ^ h;
|
|
};
|
|
e.prototype.forEach = function(c) {
|
|
h(c);
|
|
var e = this.bits;
|
|
if (e) {
|
|
for (var r = 0;r < a.BITS_PER_WORD;r++) {
|
|
e & 1 << r && c(r);
|
|
}
|
|
}
|
|
};
|
|
e.prototype.toArray = function() {
|
|
var h = [], c = this.bits;
|
|
if (c) {
|
|
for (var e = 0;e < a.BITS_PER_WORD;e++) {
|
|
c & 1 << e && h.push(e);
|
|
}
|
|
}
|
|
return h;
|
|
};
|
|
e.prototype.equals = function(a) {
|
|
return this.bits === a.bits;
|
|
};
|
|
e.prototype.contains = function(a) {
|
|
var h = this.bits;
|
|
return(h | a.bits) === h;
|
|
};
|
|
e.prototype.isEmpty = function() {
|
|
this.recount();
|
|
return 0 === this.count;
|
|
};
|
|
e.prototype.clone = function() {
|
|
var a = new e(this.length);
|
|
a._union(this);
|
|
return a;
|
|
};
|
|
return e;
|
|
}();
|
|
a.Uint32BitSet = d;
|
|
d.prototype.toString = r;
|
|
d.prototype.toBitString = e;
|
|
q.prototype.toString = r;
|
|
q.prototype.toBitString = e;
|
|
a.BitSetFunctor = function(h) {
|
|
var e = 1 === c(h) >> a.ADDRESS_BITS_PER_WORD ? d : q;
|
|
return function() {
|
|
return new e(h);
|
|
};
|
|
};
|
|
})(b.BitSets || (b.BitSets = {}));
|
|
d = function() {
|
|
function a() {
|
|
}
|
|
a.randomStyle = function() {
|
|
a._randomStyleCache || (a._randomStyleCache = "#ff5e3a #ff9500 #ffdb4c #87fc70 #52edc7 #1ad6fd #c644fc #ef4db6 #4a4a4a #dbddde #ff3b30 #ff9500 #ffcc00 #4cd964 #34aadc #007aff #5856d6 #ff2d55 #8e8e93 #c7c7cc #5ad427 #c86edf #d1eefc #e0f8d8 #fb2b69 #f7f7f7 #1d77ef #d6cec3 #55efcb #ff4981 #ffd3e0 #f7f7f7 #ff1300 #1f1f21 #bdbec2 #ff3a2d".split(" "));
|
|
return a._randomStyleCache[a._nextStyle++ % a._randomStyleCache.length];
|
|
};
|
|
a.contrastStyle = function(a) {
|
|
a = parseInt(a.substr(1), 16);
|
|
return 128 <= (299 * (a >> 16) + 587 * (a >> 8 & 255) + 114 * (a & 255)) / 1E3 ? "#000000" : "#ffffff";
|
|
};
|
|
a.reset = function() {
|
|
a._nextStyle = 0;
|
|
};
|
|
a.TabToolbar = "#252c33";
|
|
a.Toolbars = "#343c45";
|
|
a.HighlightBlue = "#1d4f73";
|
|
a.LightText = "#f5f7fa";
|
|
a.ForegroundText = "#b6babf";
|
|
a.Black = "#000000";
|
|
a.VeryDark = "#14171a";
|
|
a.Dark = "#181d20";
|
|
a.Light = "#a9bacb";
|
|
a.Grey = "#8fa1b2";
|
|
a.DarkGrey = "#5f7387";
|
|
a.Blue = "#46afe3";
|
|
a.Purple = "#6b7abb";
|
|
a.Pink = "#df80ff";
|
|
a.Red = "#eb5368";
|
|
a.Orange = "#d96629";
|
|
a.LightOrange = "#d99b28";
|
|
a.Green = "#70bf53";
|
|
a.BlueGrey = "#5e88b0";
|
|
a._nextStyle = 0;
|
|
return a;
|
|
}();
|
|
b.ColorStyle = d;
|
|
d = function() {
|
|
function a(c, e, l, h) {
|
|
this.xMin = c | 0;
|
|
this.yMin = e | 0;
|
|
this.xMax = l | 0;
|
|
this.yMax = h | 0;
|
|
}
|
|
a.FromUntyped = function(c) {
|
|
return new a(c.xMin, c.yMin, c.xMax, c.yMax);
|
|
};
|
|
a.FromRectangle = function(c) {
|
|
return new a(20 * c.x | 0, 20 * c.y | 0, 20 * (c.x + c.width) | 0, 20 * (c.y + c.height) | 0);
|
|
};
|
|
a.prototype.setElements = function(a, c, e, h) {
|
|
this.xMin = a;
|
|
this.yMin = c;
|
|
this.xMax = e;
|
|
this.yMax = h;
|
|
};
|
|
a.prototype.copyFrom = function(a) {
|
|
this.setElements(a.xMin, a.yMin, a.xMax, a.yMax);
|
|
};
|
|
a.prototype.contains = function(a, c) {
|
|
return a < this.xMin !== a < this.xMax && c < this.yMin !== c < this.yMax;
|
|
};
|
|
a.prototype.unionInPlace = function(a) {
|
|
this.xMin = Math.min(this.xMin, a.xMin);
|
|
this.yMin = Math.min(this.yMin, a.yMin);
|
|
this.xMax = Math.max(this.xMax, a.xMax);
|
|
this.yMax = Math.max(this.yMax, a.yMax);
|
|
};
|
|
a.prototype.extendByPoint = function(a, c) {
|
|
this.extendByX(a);
|
|
this.extendByY(c);
|
|
};
|
|
a.prototype.extendByX = function(a) {
|
|
134217728 === this.xMin ? this.xMin = this.xMax = a : (this.xMin = Math.min(this.xMin, a), this.xMax = Math.max(this.xMax, a));
|
|
};
|
|
a.prototype.extendByY = function(a) {
|
|
134217728 === this.yMin ? this.yMin = this.yMax = a : (this.yMin = Math.min(this.yMin, a), this.yMax = Math.max(this.yMax, a));
|
|
};
|
|
a.prototype.intersects = function(a) {
|
|
return this.contains(a.xMin, a.yMin) || this.contains(a.xMax, a.yMax);
|
|
};
|
|
a.prototype.isEmpty = function() {
|
|
return this.xMax <= this.xMin || this.yMax <= this.yMin;
|
|
};
|
|
Object.defineProperty(a.prototype, "width", {get:function() {
|
|
return this.xMax - this.xMin;
|
|
}, set:function(a) {
|
|
this.xMax = this.xMin + a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "height", {get:function() {
|
|
return this.yMax - this.yMin;
|
|
}, set:function(a) {
|
|
this.yMax = this.yMin + a;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.getBaseWidth = function(a) {
|
|
return Math.abs(Math.cos(a)) * (this.xMax - this.xMin) + Math.abs(Math.sin(a)) * (this.yMax - this.yMin);
|
|
};
|
|
a.prototype.getBaseHeight = function(a) {
|
|
return Math.abs(Math.sin(a)) * (this.xMax - this.xMin) + Math.abs(Math.cos(a)) * (this.yMax - this.yMin);
|
|
};
|
|
a.prototype.setEmpty = function() {
|
|
this.xMin = this.yMin = this.xMax = this.yMax = 0;
|
|
};
|
|
a.prototype.setToSentinels = function() {
|
|
this.xMin = this.yMin = this.xMax = this.yMax = 134217728;
|
|
};
|
|
a.prototype.clone = function() {
|
|
return new a(this.xMin, this.yMin, this.xMax, this.yMax);
|
|
};
|
|
a.prototype.toString = function() {
|
|
return "{ xMin: " + this.xMin + ", xMin: " + this.yMin + ", xMax: " + this.xMax + ", xMax: " + this.yMax + " }";
|
|
};
|
|
return a;
|
|
}();
|
|
b.Bounds = d;
|
|
d = function() {
|
|
function a(c, e, l, h) {
|
|
s.assert(k(c));
|
|
s.assert(k(e));
|
|
s.assert(k(l));
|
|
s.assert(k(h));
|
|
this._xMin = c | 0;
|
|
this._yMin = e | 0;
|
|
this._xMax = l | 0;
|
|
this._yMax = h | 0;
|
|
}
|
|
a.FromUntyped = function(c) {
|
|
return new a(c.xMin, c.yMin, c.xMax, c.yMax);
|
|
};
|
|
a.FromRectangle = function(c) {
|
|
return new a(20 * c.x | 0, 20 * c.y | 0, 20 * (c.x + c.width) | 0, 20 * (c.y + c.height) | 0);
|
|
};
|
|
a.prototype.setElements = function(a, c, e, h) {
|
|
this.xMin = a;
|
|
this.yMin = c;
|
|
this.xMax = e;
|
|
this.yMax = h;
|
|
};
|
|
a.prototype.copyFrom = function(a) {
|
|
this.setElements(a.xMin, a.yMin, a.xMax, a.yMax);
|
|
};
|
|
a.prototype.contains = function(a, c) {
|
|
return a < this.xMin !== a < this.xMax && c < this.yMin !== c < this.yMax;
|
|
};
|
|
a.prototype.unionWith = function(a) {
|
|
this._xMin = Math.min(this._xMin, a._xMin);
|
|
this._yMin = Math.min(this._yMin, a._yMin);
|
|
this._xMax = Math.max(this._xMax, a._xMax);
|
|
this._yMax = Math.max(this._yMax, a._yMax);
|
|
};
|
|
a.prototype.extendByPoint = function(a, c) {
|
|
this.extendByX(a);
|
|
this.extendByY(c);
|
|
};
|
|
a.prototype.extendByX = function(a) {
|
|
134217728 === this.xMin ? this.xMin = this.xMax = a : (this.xMin = Math.min(this.xMin, a), this.xMax = Math.max(this.xMax, a));
|
|
};
|
|
a.prototype.extendByY = function(a) {
|
|
134217728 === this.yMin ? this.yMin = this.yMax = a : (this.yMin = Math.min(this.yMin, a), this.yMax = Math.max(this.yMax, a));
|
|
};
|
|
a.prototype.intersects = function(a) {
|
|
return this.contains(a._xMin, a._yMin) || this.contains(a._xMax, a._yMax);
|
|
};
|
|
a.prototype.isEmpty = function() {
|
|
return this._xMax <= this._xMin || this._yMax <= this._yMin;
|
|
};
|
|
Object.defineProperty(a.prototype, "xMin", {get:function() {
|
|
return this._xMin;
|
|
}, set:function(a) {
|
|
s.assert(k(a));
|
|
this._xMin = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "yMin", {get:function() {
|
|
return this._yMin;
|
|
}, set:function(a) {
|
|
s.assert(k(a));
|
|
this._yMin = a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "xMax", {get:function() {
|
|
return this._xMax;
|
|
}, set:function(a) {
|
|
s.assert(k(a));
|
|
this._xMax = a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "width", {get:function() {
|
|
return this._xMax - this._xMin;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "yMax", {get:function() {
|
|
return this._yMax;
|
|
}, set:function(a) {
|
|
s.assert(k(a));
|
|
this._yMax = a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "height", {get:function() {
|
|
return this._yMax - this._yMin;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.getBaseWidth = function(a) {
|
|
return Math.abs(Math.cos(a)) * (this._xMax - this._xMin) + Math.abs(Math.sin(a)) * (this._yMax - this._yMin);
|
|
};
|
|
a.prototype.getBaseHeight = function(a) {
|
|
return Math.abs(Math.sin(a)) * (this._xMax - this._xMin) + Math.abs(Math.cos(a)) * (this._yMax - this._yMin);
|
|
};
|
|
a.prototype.setEmpty = function() {
|
|
this._xMin = this._yMin = this._xMax = this._yMax = 0;
|
|
};
|
|
a.prototype.clone = function() {
|
|
return new a(this.xMin, this.yMin, this.xMax, this.yMax);
|
|
};
|
|
a.prototype.toString = function() {
|
|
return "{ xMin: " + this._xMin + ", xMin: " + this._yMin + ", xMax: " + this._xMax + ", yMax: " + this._yMax + " }";
|
|
};
|
|
a.prototype.assertValid = function() {
|
|
};
|
|
return a;
|
|
}();
|
|
b.DebugBounds = d;
|
|
d = function() {
|
|
function a(c, e, l, h) {
|
|
this.r = c;
|
|
this.g = e;
|
|
this.b = l;
|
|
this.a = h;
|
|
}
|
|
a.FromARGB = function(c) {
|
|
return new a((c >> 16 & 255) / 255, (c >> 8 & 255) / 255, (c >> 0 & 255) / 255, (c >> 24 & 255) / 255);
|
|
};
|
|
a.FromRGBA = function(c) {
|
|
return a.FromARGB(e.RGBAToARGB(c));
|
|
};
|
|
a.prototype.toRGBA = function() {
|
|
return 255 * this.r << 24 | 255 * this.g << 16 | 255 * this.b << 8 | 255 * this.a;
|
|
};
|
|
a.prototype.toCSSStyle = function() {
|
|
return e.rgbaToCSSStyle(this.toRGBA());
|
|
};
|
|
a.prototype.set = function(a) {
|
|
this.r = a.r;
|
|
this.g = a.g;
|
|
this.b = a.b;
|
|
this.a = a.a;
|
|
};
|
|
a.randomColor = function(c) {
|
|
"undefined" === typeof c && (c = 1);
|
|
return new a(Math.random(), Math.random(), Math.random(), c);
|
|
};
|
|
a.parseColor = function(c) {
|
|
a.colorCache || (a.colorCache = Object.create(null));
|
|
if (a.colorCache[c]) {
|
|
return a.colorCache[c];
|
|
}
|
|
var e = document.createElement("span");
|
|
document.body.appendChild(e);
|
|
e.style.backgroundColor = c;
|
|
var r = getComputedStyle(e).backgroundColor;
|
|
document.body.removeChild(e);
|
|
(e = /^rgb\((\d+), (\d+), (\d+)\)$/.exec(r)) || (e = /^rgba\((\d+), (\d+), (\d+), ([\d.]+)\)$/.exec(r));
|
|
r = new a(0, 0, 0, 0);
|
|
r.r = parseFloat(e[1]) / 255;
|
|
r.g = parseFloat(e[2]) / 255;
|
|
r.b = parseFloat(e[3]) / 255;
|
|
r.a = e[4] ? parseFloat(e[4]) / 255 : 1;
|
|
return a.colorCache[c] = r;
|
|
};
|
|
a.Red = new a(1, 0, 0, 1);
|
|
a.Green = new a(0, 1, 0, 1);
|
|
a.Blue = new a(0, 0, 1, 1);
|
|
a.None = new a(0, 0, 0, 0);
|
|
a.White = new a(1, 1, 1, 1);
|
|
a.Black = new a(0, 0, 0, 1);
|
|
a.colorCache = {};
|
|
return a;
|
|
}();
|
|
b.Color = d;
|
|
(function(a) {
|
|
function c(a) {
|
|
var e, l, r = a >> 24 & 255;
|
|
l = (Math.imul(a >> 16 & 255, r) + 127) / 255 | 0;
|
|
e = (Math.imul(a >> 8 & 255, r) + 127) / 255 | 0;
|
|
a = (Math.imul(a >> 0 & 255, r) + 127) / 255 | 0;
|
|
return r << 24 | l << 16 | e << 8 | a;
|
|
}
|
|
a.RGBAToARGB = function(a) {
|
|
return a >> 8 & 16777215 | (a & 255) << 24;
|
|
};
|
|
a.ARGBToRGBA = function(a) {
|
|
return a << 8 | a >> 24 & 255;
|
|
};
|
|
a.rgbaToCSSStyle = function(a) {
|
|
return b.StringUtilities.concat9("rgba(", a >> 24 & 255, ",", a >> 16 & 255, ",", a >> 8 & 255, ",", (a & 255) / 255, ")");
|
|
};
|
|
a.cssStyleToRGBA = function(a) {
|
|
if ("#" === a[0]) {
|
|
if (7 === a.length) {
|
|
return parseInt(a.substring(1), 16) << 8 | 255;
|
|
}
|
|
} else {
|
|
if ("r" === a[0]) {
|
|
return a = a.substring(5, a.length - 1).split(","), (parseInt(a[0]) & 255) << 24 | (parseInt(a[1]) & 255) << 16 | (parseInt(a[2]) & 255) << 8 | 255 * parseFloat(a[3]) & 255;
|
|
}
|
|
}
|
|
return 4278190335;
|
|
};
|
|
a.hexToRGB = function(a) {
|
|
return parseInt(a.slice(1), 16);
|
|
};
|
|
a.rgbToHex = function(a) {
|
|
return "#" + ("000000" + a.toString(16)).slice(-6);
|
|
};
|
|
a.isValidHexColor = function(a) {
|
|
return/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(a);
|
|
};
|
|
a.clampByte = function(a) {
|
|
return Math.max(0, Math.min(255, a));
|
|
};
|
|
a.unpremultiplyARGB = function(a) {
|
|
var c, e, l = a >> 24 & 255;
|
|
e = Math.imul(255, a >> 16 & 255) / l & 255;
|
|
c = Math.imul(255, a >> 8 & 255) / l & 255;
|
|
a = Math.imul(255, a >> 0 & 255) / l & 255;
|
|
return l << 24 | e << 16 | c << 8 | a;
|
|
};
|
|
a.premultiplyARGB = c;
|
|
var e;
|
|
a.ensureUnpremultiplyTable = function() {
|
|
if (!e) {
|
|
e = new Uint8Array(65536);
|
|
for (var a = 0;256 > a;a++) {
|
|
for (var c = 0;256 > c;c++) {
|
|
e[(c << 8) + a] = Math.imul(255, a) / c;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
a.tableLookupUnpremultiplyARGB = function(a) {
|
|
a |= 0;
|
|
var c = a >> 24 & 255;
|
|
if (0 === c) {
|
|
return 0;
|
|
}
|
|
if (255 === c) {
|
|
return a;
|
|
}
|
|
var l, r, q = c << 8, d = e;
|
|
r = d[q + (a >> 16 & 255)];
|
|
l = d[q + (a >> 8 & 255)];
|
|
a = d[q + (a >> 0 & 255)];
|
|
return c << 24 | r << 16 | l << 8 | a;
|
|
};
|
|
a.blendPremultipliedBGRA = function(a, c) {
|
|
var e, l;
|
|
l = 256 - (c & 255);
|
|
e = Math.imul(a & 16711935, l) >> 8;
|
|
l = Math.imul(a >> 8 & 16711935, l) >> 8;
|
|
return((c >> 8 & 16711935) + l & 16711935) << 8 | (c & 16711935) + e & 16711935;
|
|
};
|
|
var r = n.swap32;
|
|
a.convertImage = function(a, l, d, p) {
|
|
d !== p && s.assert(d.buffer !== p.buffer, "Can't handle overlapping views.");
|
|
var n = d.length;
|
|
if (a === l) {
|
|
if (d !== p) {
|
|
for (a = 0;a < n;a++) {
|
|
p[a] = d[a];
|
|
}
|
|
}
|
|
} else {
|
|
if (1 === a && 3 === l) {
|
|
for (b.ColorUtilities.ensureUnpremultiplyTable(), a = 0;a < n;a++) {
|
|
var m = d[a];
|
|
l = m & 255;
|
|
if (0 === l) {
|
|
p[a] = 0;
|
|
} else {
|
|
if (255 === l) {
|
|
p[a] = (m & 255) << 24 | m >> 8 & 16777215;
|
|
} else {
|
|
var f = m >> 24 & 255, g = m >> 16 & 255, m = m >> 8 & 255, k = l << 8, t = e, m = t[k + m], g = t[k + g], f = t[k + f];
|
|
p[a] = l << 24 | f << 16 | g << 8 | m;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (2 === a && 3 === l) {
|
|
for (a = 0;a < n;a++) {
|
|
p[a] = r(d[a]);
|
|
}
|
|
} else {
|
|
if (3 === a && 1 === l) {
|
|
for (a = 0;a < n;a++) {
|
|
l = d[a], p[a] = r(c(l & 4278255360 | l >> 16 & 255 | (l & 255) << 16));
|
|
}
|
|
} else {
|
|
for (s.somewhatImplemented("Image Format Conversion: " + q[a] + " -> " + q[l]), a = 0;a < n;a++) {
|
|
p[a] = d[a];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
})(b.ColorUtilities || (b.ColorUtilities = {}));
|
|
var e = b.ColorUtilities, d = function() {
|
|
function a(c) {
|
|
"undefined" === typeof c && (c = 32);
|
|
this._list = [];
|
|
this._maxSize = c;
|
|
}
|
|
a.prototype.acquire = function(c) {
|
|
if (a._enabled) {
|
|
for (var e = this._list, r = 0;r < e.length;r++) {
|
|
var h = e[r];
|
|
if (h.byteLength >= c) {
|
|
return e.splice(r, 1), h;
|
|
}
|
|
}
|
|
}
|
|
return new ArrayBuffer(c);
|
|
};
|
|
a.prototype.release = function(c) {
|
|
if (a._enabled) {
|
|
var e = this._list;
|
|
s.assert(0 > m.indexOf(e, c));
|
|
e.length === this._maxSize && e.shift();
|
|
e.push(c);
|
|
}
|
|
};
|
|
a.prototype.ensureUint8ArrayLength = function(a, c) {
|
|
if (a.length >= c) {
|
|
return a;
|
|
}
|
|
var e = Math.max(a.length + c, (3 * a.length >> 1) + 1), e = new Uint8Array(this.acquire(e), 0, e);
|
|
e.set(a);
|
|
this.release(a.buffer);
|
|
return e;
|
|
};
|
|
a.prototype.ensureFloat64ArrayLength = function(a, c) {
|
|
if (a.length >= c) {
|
|
return a;
|
|
}
|
|
var e = Math.max(a.length + c, (3 * a.length >> 1) + 1), e = new Float64Array(this.acquire(e * Float64Array.BYTES_PER_ELEMENT), 0, e);
|
|
e.set(a);
|
|
this.release(a.buffer);
|
|
return e;
|
|
};
|
|
a._enabled = !0;
|
|
return a;
|
|
}();
|
|
b.ArrayBufferPool = d;
|
|
(function(a) {
|
|
(function(a) {
|
|
a[a.EXTERNAL_INTERFACE_FEATURE = 1] = "EXTERNAL_INTERFACE_FEATURE";
|
|
a[a.CLIPBOARD_FEATURE = 2] = "CLIPBOARD_FEATURE";
|
|
a[a.SHAREDOBJECT_FEATURE = 3] = "SHAREDOBJECT_FEATURE";
|
|
a[a.VIDEO_FEATURE = 4] = "VIDEO_FEATURE";
|
|
a[a.SOUND_FEATURE = 5] = "SOUND_FEATURE";
|
|
a[a.NETCONNECTION_FEATURE = 6] = "NETCONNECTION_FEATURE";
|
|
})(a.Feature || (a.Feature = {}));
|
|
(function(a) {
|
|
a[a.AVM1_ERROR = 1] = "AVM1_ERROR";
|
|
a[a.AVM2_ERROR = 2] = "AVM2_ERROR";
|
|
})(a.ErrorTypes || (a.ErrorTypes = {}));
|
|
a.instance;
|
|
})(b.Telemetry || (b.Telemetry = {}));
|
|
(function(a) {
|
|
a.instance;
|
|
})(b.FileLoadingService || (b.FileLoadingService = {}));
|
|
(function(a) {
|
|
a.instance = {enabled:!1, initJS:function(a) {
|
|
}, registerCallback:function(a) {
|
|
}, unregisterCallback:function(a) {
|
|
}, eval:function(a) {
|
|
}, call:function(a) {
|
|
}, getId:function() {
|
|
return null;
|
|
}};
|
|
})(b.ExternalInterfaceService || (b.ExternalInterfaceService = {}));
|
|
d = function() {
|
|
function a() {
|
|
}
|
|
a.prototype.setClipboard = function(a) {
|
|
s.abstractMethod("public ClipboardService::setClipboard");
|
|
};
|
|
a.instance = null;
|
|
return a;
|
|
}();
|
|
b.ClipboardService = d;
|
|
d = function() {
|
|
function a() {
|
|
this._queues = {};
|
|
}
|
|
a.prototype.register = function(a, c) {
|
|
s.assert(a);
|
|
s.assert(c);
|
|
var e = this._queues[a];
|
|
if (e) {
|
|
if (-1 < e.indexOf(c)) {
|
|
return;
|
|
}
|
|
} else {
|
|
e = this._queues[a] = [];
|
|
}
|
|
e.push(c);
|
|
};
|
|
a.prototype.unregister = function(a, c) {
|
|
s.assert(a);
|
|
s.assert(c);
|
|
var e = this._queues[a];
|
|
if (e) {
|
|
var h = e.indexOf(c);
|
|
-1 !== h && e.splice(h, 1);
|
|
0 === e.length && (this._queues[a] = null);
|
|
}
|
|
};
|
|
a.prototype.notify = function(a, c) {
|
|
var e = this._queues[a];
|
|
if (e) {
|
|
e = e.slice();
|
|
c = Array.prototype.slice.call(arguments, 0);
|
|
for (var h = 0;h < e.length;h++) {
|
|
e[h].apply(null, c);
|
|
}
|
|
}
|
|
};
|
|
a.prototype.notify1 = function(a, c) {
|
|
var e = this._queues[a];
|
|
if (e) {
|
|
for (var e = e.slice(), h = 0;h < e.length;h++) {
|
|
(0,e[h])(a, c);
|
|
}
|
|
}
|
|
};
|
|
return a;
|
|
}();
|
|
b.Callback = d;
|
|
(function(a) {
|
|
a[a.None = 0] = "None";
|
|
a[a.PremultipliedAlphaARGB = 1] = "PremultipliedAlphaARGB";
|
|
a[a.StraightAlphaARGB = 2] = "StraightAlphaARGB";
|
|
a[a.StraightAlphaRGBA = 3] = "StraightAlphaRGBA";
|
|
a[a.JPEG = 4] = "JPEG";
|
|
a[a.PNG = 5] = "PNG";
|
|
a[a.GIF = 6] = "GIF";
|
|
})(b.ImageType || (b.ImageType = {}));
|
|
var q = b.ImageType;
|
|
b.PromiseWrapper = function() {
|
|
return function() {
|
|
this.promise = new Promise(function(a, c) {
|
|
this.resolve = a;
|
|
this.reject = c;
|
|
}.bind(this));
|
|
};
|
|
}();
|
|
})(Shumway || (Shumway = {}));
|
|
(function() {
|
|
function b(a) {
|
|
if ("function" !== typeof a) {
|
|
throw new TypeError("Invalid deferred constructor");
|
|
}
|
|
var c = p();
|
|
a = new a(c);
|
|
var e = c.resolve;
|
|
if ("function" !== typeof e) {
|
|
throw new TypeError("Invalid resolve construction function");
|
|
}
|
|
c = c.reject;
|
|
if ("function" !== typeof c) {
|
|
throw new TypeError("Invalid reject construction function");
|
|
}
|
|
return{promise:a, resolve:e, reject:c};
|
|
}
|
|
function k(a, c) {
|
|
if ("object" !== typeof a || null === a) {
|
|
return!1;
|
|
}
|
|
try {
|
|
var e = a.then;
|
|
if ("function" !== typeof e) {
|
|
return!1;
|
|
}
|
|
e.call(a, c.resolve, c.reject);
|
|
} catch (l) {
|
|
e = c.reject, e(l);
|
|
}
|
|
return!0;
|
|
}
|
|
function g(a) {
|
|
return "object" === typeof a && null !== a && "undefined" !== typeof a.promiseStatus;
|
|
}
|
|
function f(a, c) {
|
|
if ("unresolved" === a.promiseStatus) {
|
|
var e = a.rejectReactions;
|
|
a.result = c;
|
|
a.resolveReactions = void 0;
|
|
a.rejectReactions = void 0;
|
|
a.promiseStatus = "has-rejection";
|
|
t(e, c);
|
|
}
|
|
}
|
|
function t(a, c) {
|
|
for (var e = 0;e < a.length;e++) {
|
|
s({reaction:a[e], argument:c});
|
|
}
|
|
}
|
|
function s(a) {
|
|
0 === w.length && setTimeout(m, 0);
|
|
w.push(a);
|
|
}
|
|
function m() {
|
|
for (;0 < w.length;) {
|
|
var a = w[0];
|
|
try {
|
|
a: {
|
|
var c = a.reaction, e = c.deferred, q = c.handler, d = void 0, p = void 0;
|
|
try {
|
|
d = q(a.argument);
|
|
} catch (n) {
|
|
var b = e.reject;
|
|
b(n);
|
|
break a;
|
|
}
|
|
if (d === e.promise) {
|
|
b = e.reject, b(new TypeError("Self resolution"));
|
|
} else {
|
|
try {
|
|
if (p = k(d, e), !p) {
|
|
var m = e.resolve;
|
|
m(d);
|
|
}
|
|
} catch (u) {
|
|
b = e.reject, b(u);
|
|
}
|
|
}
|
|
}
|
|
} catch (f) {
|
|
if ("function" === typeof l.onerror) {
|
|
l.onerror(f);
|
|
}
|
|
}
|
|
w.shift();
|
|
}
|
|
}
|
|
function d(a) {
|
|
throw a;
|
|
}
|
|
function a(a) {
|
|
return a;
|
|
}
|
|
function c(a) {
|
|
return function(c) {
|
|
f(a, c);
|
|
};
|
|
}
|
|
function n(a) {
|
|
return function(c) {
|
|
if ("unresolved" === a.promiseStatus) {
|
|
var e = a.resolveReactions;
|
|
a.result = c;
|
|
a.resolveReactions = void 0;
|
|
a.rejectReactions = void 0;
|
|
a.promiseStatus = "has-resolution";
|
|
t(e, c);
|
|
}
|
|
};
|
|
}
|
|
function p() {
|
|
function a(c, e) {
|
|
a.resolve = c;
|
|
a.reject = e;
|
|
}
|
|
return a;
|
|
}
|
|
function e(a, c, e) {
|
|
return function(l) {
|
|
if (l === a) {
|
|
return e(new TypeError("Self resolution"));
|
|
}
|
|
var q = a.promiseConstructor;
|
|
if (g(l) && l.promiseConstructor === q) {
|
|
return l.then(c, e);
|
|
}
|
|
q = b(q);
|
|
return k(l, q) ? q.promise.then(c, e) : c(l);
|
|
};
|
|
}
|
|
function q(a, c, e, l) {
|
|
return function(q) {
|
|
c[a] = q;
|
|
l.countdown--;
|
|
0 === l.countdown && e.resolve(c);
|
|
};
|
|
}
|
|
function l(a) {
|
|
if ("function" !== typeof a) {
|
|
throw new TypeError("resolver is not a function");
|
|
}
|
|
if ("object" !== typeof this) {
|
|
throw new TypeError("Promise to initialize is not an object");
|
|
}
|
|
this.promiseStatus = "unresolved";
|
|
this.resolveReactions = [];
|
|
this.rejectReactions = [];
|
|
this.result = void 0;
|
|
var h = n(this), e = c(this);
|
|
try {
|
|
a(h, e);
|
|
} catch (q) {
|
|
f(this, q);
|
|
}
|
|
this.promiseConstructor = l;
|
|
return this;
|
|
}
|
|
var u = Function("return this")();
|
|
if (u.Promise) {
|
|
"function" !== typeof u.Promise.all && (u.Promise.all = function(a) {
|
|
var c = 0, e = [], l, q, d = new u.Promise(function(a, c) {
|
|
l = a;
|
|
q = c;
|
|
});
|
|
a.forEach(function(a, d) {
|
|
c++;
|
|
a.then(function(a) {
|
|
e[d] = a;
|
|
c--;
|
|
0 === c && l(e);
|
|
}, q);
|
|
});
|
|
0 === c && l(e);
|
|
return d;
|
|
}), "function" !== typeof u.Promise.resolve && (u.Promise.resolve = function(a) {
|
|
return new u.Promise(function(c) {
|
|
c(a);
|
|
});
|
|
});
|
|
} else {
|
|
var w = [];
|
|
l.all = function(a) {
|
|
var c = b(this), e = [], l = {countdown:0}, d = 0;
|
|
a.forEach(function(a) {
|
|
this.cast(a).then(q(d, e, c, l), c.reject);
|
|
d++;
|
|
l.countdown++;
|
|
}, this);
|
|
0 === d && c.resolve(e);
|
|
return c.promise;
|
|
};
|
|
l.cast = function(a) {
|
|
if (g(a)) {
|
|
return a;
|
|
}
|
|
var c = b(this);
|
|
c.resolve(a);
|
|
return c.promise;
|
|
};
|
|
l.reject = function(a) {
|
|
var c = b(this);
|
|
c.reject(a);
|
|
return c.promise;
|
|
};
|
|
l.resolve = function(a) {
|
|
var c = b(this);
|
|
c.resolve(a);
|
|
return c.promise;
|
|
};
|
|
l.prototype = {"catch":function(a) {
|
|
this.then(void 0, a);
|
|
}, then:function(c, h) {
|
|
if (!g(this)) {
|
|
throw new TypeError("this is not a Promises");
|
|
}
|
|
var l = b(this.promiseConstructor), q = "function" === typeof h ? h : d, p = {deferred:l, handler:e(this, "function" === typeof c ? c : a, q)}, q = {deferred:l, handler:q};
|
|
switch(this.promiseStatus) {
|
|
case "unresolved":
|
|
this.resolveReactions.push(p);
|
|
this.rejectReactions.push(q);
|
|
break;
|
|
case "has-resolution":
|
|
s({reaction:p, argument:this.result});
|
|
break;
|
|
case "has-rejection":
|
|
s({reaction:q, argument:this.result});
|
|
}
|
|
return l.promise;
|
|
}};
|
|
u.Promise = l;
|
|
}
|
|
})();
|
|
"undefined" !== typeof exports && (exports.Shumway = Shumway);
|
|
(function() {
|
|
function b(b, g, f) {
|
|
b[g] || Object.defineProperty(b, g, {value:f, writable:!0, configurable:!0, enumerable:!1});
|
|
}
|
|
b(String.prototype, "padRight", function(b, g) {
|
|
var f = this, t = f.replace(/\033\[[0-9]*m/g, "").length;
|
|
if (!b || t >= g) {
|
|
return f;
|
|
}
|
|
for (var t = (g - t) / b.length, s = 0;s < t;s++) {
|
|
f += b;
|
|
}
|
|
return f;
|
|
});
|
|
b(String.prototype, "padLeft", function(b, g) {
|
|
var f = this, t = f.length;
|
|
if (!b || t >= g) {
|
|
return f;
|
|
}
|
|
for (var t = (g - t) / b.length, s = 0;s < t;s++) {
|
|
f = b + f;
|
|
}
|
|
return f;
|
|
});
|
|
b(String.prototype, "trim", function() {
|
|
return this.replace(/^\s+|\s+$/g, "");
|
|
});
|
|
b(String.prototype, "endsWith", function(b) {
|
|
return-1 !== this.indexOf(b, this.length - b.length);
|
|
});
|
|
b(Array.prototype, "replace", function(b, g) {
|
|
if (b === g) {
|
|
return 0;
|
|
}
|
|
for (var f = 0, t = 0;t < this.length;t++) {
|
|
this[t] === b && (this[t] = g, f++);
|
|
}
|
|
return f;
|
|
});
|
|
})();
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = b.isObject, f = b.Debug.assert, t = function() {
|
|
function a(a, d, p, e) {
|
|
this.shortName = a;
|
|
this.longName = d;
|
|
this.type = p;
|
|
e = e || {};
|
|
this.positional = e.positional;
|
|
this.parseFn = e.parse;
|
|
this.value = e.defaultValue;
|
|
}
|
|
a.prototype.parse = function(a) {
|
|
"boolean" === this.type ? (f("boolean" === typeof a), this.value = a) : "number" === this.type ? (f(!isNaN(a), a + " is not a number"), this.value = parseInt(a, 10)) : this.value = a;
|
|
this.parseFn && this.parseFn(this.value);
|
|
};
|
|
return a;
|
|
}();
|
|
k.Argument = t;
|
|
var s = function() {
|
|
function a() {
|
|
this.args = [];
|
|
}
|
|
a.prototype.addArgument = function(a, d, p, e) {
|
|
a = new t(a, d, p, e);
|
|
this.args.push(a);
|
|
return a;
|
|
};
|
|
a.prototype.addBoundOption = function(a) {
|
|
this.args.push(new t(a.shortName, a.longName, a.type, {parse:function(d) {
|
|
a.value = d;
|
|
}}));
|
|
};
|
|
a.prototype.addBoundOptionSet = function(a) {
|
|
var n = this;
|
|
a.options.forEach(function(a) {
|
|
a instanceof m ? n.addBoundOptionSet(a) : (f(a instanceof d), n.addBoundOption(a));
|
|
});
|
|
};
|
|
a.prototype.getUsage = function() {
|
|
var a = "";
|
|
this.args.forEach(function(d) {
|
|
a = d.positional ? a + d.longName : a + ("[-" + d.shortName + "|--" + d.longName + ("boolean" === d.type ? "" : " " + d.type[0].toUpperCase()) + "]");
|
|
a += " ";
|
|
});
|
|
return a;
|
|
};
|
|
a.prototype.parse = function(a) {
|
|
var d = {}, p = [];
|
|
this.args.forEach(function(a) {
|
|
a.positional ? p.push(a) : (d["-" + a.shortName] = a, d["--" + a.longName] = a);
|
|
});
|
|
for (var e = [];a.length;) {
|
|
var q = a.shift(), l = null, b = q;
|
|
if ("--" == q) {
|
|
e = e.concat(a);
|
|
break;
|
|
} else {
|
|
if ("-" == q.slice(0, 1) || "--" == q.slice(0, 2)) {
|
|
l = d[q];
|
|
if (!l) {
|
|
continue;
|
|
}
|
|
"boolean" !== l.type ? (b = a.shift(), f("-" !== b && "--" !== b, "Argument " + q + " must have a value.")) : b = !0;
|
|
} else {
|
|
p.length ? l = p.shift() : e.push(b);
|
|
}
|
|
}
|
|
l && l.parse(b);
|
|
}
|
|
f(0 === p.length, "Missing positional arguments.");
|
|
return e;
|
|
};
|
|
return a;
|
|
}();
|
|
k.ArgumentParser = s;
|
|
var m = function() {
|
|
function a(a, d) {
|
|
"undefined" === typeof d && (d = null);
|
|
this.open = !1;
|
|
this.name = a;
|
|
this.settings = d || {};
|
|
this.options = [];
|
|
}
|
|
a.prototype.register = function(c) {
|
|
if (c instanceof a) {
|
|
for (var d = 0;d < this.options.length;d++) {
|
|
var p = this.options[d];
|
|
if (p instanceof a && p.name === c.name) {
|
|
return p;
|
|
}
|
|
}
|
|
}
|
|
this.options.push(c);
|
|
if (this.settings) {
|
|
if (c instanceof a) {
|
|
d = this.settings[c.name], g(d) && (c.settings = d.settings, c.open = d.open);
|
|
} else {
|
|
if ("undefined" !== typeof this.settings[c.longName]) {
|
|
switch(c.type) {
|
|
case "boolean":
|
|
c.value = !!this.settings[c.longName];
|
|
break;
|
|
case "number":
|
|
c.value = +this.settings[c.longName];
|
|
break;
|
|
default:
|
|
c.value = this.settings[c.longName];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return c;
|
|
};
|
|
a.prototype.trace = function(a) {
|
|
a.enter(this.name + " {");
|
|
this.options.forEach(function(d) {
|
|
d.trace(a);
|
|
});
|
|
a.leave("}");
|
|
};
|
|
a.prototype.getSettings = function() {
|
|
var c = {};
|
|
this.options.forEach(function(d) {
|
|
d instanceof a ? c[d.name] = {settings:d.getSettings(), open:d.open} : c[d.longName] = d.value;
|
|
});
|
|
return c;
|
|
};
|
|
a.prototype.setSettings = function(c) {
|
|
c && this.options.forEach(function(d) {
|
|
d instanceof a ? d.name in c && d.setSettings(c[d.name].settings) : d.longName in c && (d.value = c[d.longName]);
|
|
});
|
|
};
|
|
return a;
|
|
}();
|
|
k.OptionSet = m;
|
|
var d = function() {
|
|
function a(a, d, p, e, q, l) {
|
|
"undefined" === typeof l && (l = null);
|
|
this.longName = d;
|
|
this.shortName = a;
|
|
this.type = p;
|
|
this.value = this.defaultValue = e;
|
|
this.description = q;
|
|
this.config = l;
|
|
}
|
|
a.prototype.parse = function(a) {
|
|
this.value = a;
|
|
};
|
|
a.prototype.trace = function(a) {
|
|
a.writeLn(("-" + this.shortName + "|--" + this.longName).padRight(" ", 30) + " = " + this.type + " " + this.value + " [" + this.defaultValue + "] (" + this.description + ")");
|
|
};
|
|
return a;
|
|
}();
|
|
k.Option = d;
|
|
})(b.Options || (b.Options = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
function g() {
|
|
try {
|
|
return "undefined" !== typeof window && "localStorage" in window && null !== window.localStorage;
|
|
} catch (b) {
|
|
return!1;
|
|
}
|
|
}
|
|
function f(b) {
|
|
"undefined" === typeof b && (b = k.ROOT);
|
|
var f = {};
|
|
if (g() && (b = window.localStorage[b])) {
|
|
try {
|
|
f = JSON.parse(b);
|
|
} catch (m) {
|
|
}
|
|
}
|
|
return f;
|
|
}
|
|
k.ROOT = "Shumway Options";
|
|
k.shumwayOptions = new b.Options.OptionSet(k.ROOT, f());
|
|
k.isStorageSupported = g;
|
|
k.load = f;
|
|
k.save = function(b, f) {
|
|
"undefined" === typeof b && (b = null);
|
|
"undefined" === typeof f && (f = k.ROOT);
|
|
if (g()) {
|
|
try {
|
|
window.localStorage[f] = JSON.stringify(b ? b : k.shumwayOptions.getSettings());
|
|
} catch (m) {
|
|
}
|
|
}
|
|
};
|
|
k.setSettings = function(b) {
|
|
k.shumwayOptions.setSettings(b);
|
|
};
|
|
k.getSettings = function(b) {
|
|
return k.shumwayOptions.getSettings();
|
|
};
|
|
})(b.Settings || (b.Settings = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = function() {
|
|
function f(f, g) {
|
|
this._parent = f;
|
|
this._timers = b.ObjectUtilities.createMap();
|
|
this._name = g;
|
|
this._count = this._total = this._last = this._begin = 0;
|
|
}
|
|
f.time = function(b, g) {
|
|
f.start(b);
|
|
g();
|
|
f.stop();
|
|
};
|
|
f.start = function(b) {
|
|
f._top = f._top._timers[b] || (f._top._timers[b] = new f(f._top, b));
|
|
f._top.start();
|
|
b = f._flat._timers[b] || (f._flat._timers[b] = new f(f._flat, b));
|
|
b.start();
|
|
f._flatStack.push(b);
|
|
};
|
|
f.stop = function() {
|
|
f._top.stop();
|
|
f._top = f._top._parent;
|
|
f._flatStack.pop().stop();
|
|
};
|
|
f.stopStart = function(b) {
|
|
f.stop();
|
|
f.start(b);
|
|
};
|
|
f.prototype.start = function() {
|
|
this._begin = b.getTicks();
|
|
};
|
|
f.prototype.stop = function() {
|
|
this._last = b.getTicks() - this._begin;
|
|
this._total += this._last;
|
|
this._count += 1;
|
|
};
|
|
f.prototype.toJSON = function() {
|
|
return{name:this._name, total:this._total, timers:this._timers};
|
|
};
|
|
f.prototype.trace = function(b) {
|
|
b.enter(this._name + ": " + this._total.toFixed(2) + " ms, count: " + this._count + ", average: " + (this._total / this._count).toFixed(2) + " ms");
|
|
for (var f in this._timers) {
|
|
this._timers[f].trace(b);
|
|
}
|
|
b.outdent();
|
|
};
|
|
f.trace = function(b) {
|
|
f._base.trace(b);
|
|
f._flat.trace(b);
|
|
};
|
|
f._base = new f(null, "Total");
|
|
f._top = f._base;
|
|
f._flat = new f(null, "Flat");
|
|
f._flatStack = [];
|
|
return f;
|
|
}();
|
|
k.Timer = g;
|
|
g = function() {
|
|
function f(b) {
|
|
this._enabled = b;
|
|
this.clear();
|
|
}
|
|
Object.defineProperty(f.prototype, "counts", {get:function() {
|
|
return this._counts;
|
|
}, enumerable:!0, configurable:!0});
|
|
f.prototype.setEnabled = function(b) {
|
|
this._enabled = b;
|
|
};
|
|
f.prototype.clear = function() {
|
|
this._counts = b.ObjectUtilities.createMap();
|
|
this._times = b.ObjectUtilities.createMap();
|
|
};
|
|
f.prototype.toJSON = function() {
|
|
return{counts:this._counts, times:this._times};
|
|
};
|
|
f.prototype.count = function(b, f, m) {
|
|
"undefined" === typeof f && (f = 1);
|
|
"undefined" === typeof m && (m = 0);
|
|
if (this._enabled) {
|
|
return void 0 === this._counts[b] && (this._counts[b] = 0, this._times[b] = 0), this._counts[b] += f, this._times[b] += m, this._counts[b];
|
|
}
|
|
};
|
|
f.prototype.trace = function(b) {
|
|
for (var f in this._counts) {
|
|
b.writeLn(f + ": " + this._counts[f]);
|
|
}
|
|
};
|
|
f.prototype._pairToString = function(b, f) {
|
|
var m = f[0], d = f[1], a = b[m], m = m + ": " + d;
|
|
a && (m += ", " + a.toFixed(4), 1 < d && (m += " (" + (a / d).toFixed(4) + ")"));
|
|
return m;
|
|
};
|
|
f.prototype.toStringSorted = function() {
|
|
var b = this, f = this._times, m = [], d;
|
|
for (d in this._counts) {
|
|
m.push([d, this._counts[d]]);
|
|
}
|
|
m.sort(function(a, c) {
|
|
return c[1] - a[1];
|
|
});
|
|
return m.map(function(a) {
|
|
return b._pairToString(f, a);
|
|
}).join(", ");
|
|
};
|
|
f.prototype.traceSorted = function(b) {
|
|
var f = !0;
|
|
"undefined" === typeof f && (f = !1);
|
|
var m = this, d = this._times, a = [], c;
|
|
for (c in this._counts) {
|
|
a.push([c, this._counts[c]]);
|
|
}
|
|
a.sort(function(a, c) {
|
|
return c[1] - a[1];
|
|
});
|
|
f ? b.writeLn(a.map(function(a) {
|
|
return m._pairToString(d, a);
|
|
}).join(", ")) : a.forEach(function(a) {
|
|
b.writeLn(m._pairToString(d, a));
|
|
});
|
|
};
|
|
f.instance = new f(!0);
|
|
return f;
|
|
}();
|
|
k.Counter = g;
|
|
g = function() {
|
|
function b(f) {
|
|
this._samples = new Float64Array(f);
|
|
this._index = this._count = 0;
|
|
}
|
|
b.prototype.push = function(b) {
|
|
this._count < this._samples.length && this._count++;
|
|
this._index++;
|
|
this._samples[this._index % this._samples.length] = b;
|
|
};
|
|
b.prototype.average = function() {
|
|
for (var b = 0, f = 0;f < this._count;f++) {
|
|
b += this._samples[f];
|
|
}
|
|
return b / this._count;
|
|
};
|
|
return b;
|
|
}();
|
|
k.Average = g;
|
|
})(b.Metrics || (b.Metrics = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
function g(a) {
|
|
for (var c = Math.max.apply(null, a), e = a.length, q = 1 << c, h = new Uint32Array(q), d = c << 16 | 65535, b = 0;b < q;b++) {
|
|
h[b] = d;
|
|
}
|
|
for (var d = 0, b = 1, p = 2;b <= c;d <<= 1, ++b, p <<= 1) {
|
|
for (var n = 0;n < e;++n) {
|
|
if (a[n] === b) {
|
|
for (var m = 0, f = 0;f < b;++f) {
|
|
m = 2 * m + (d >> f & 1);
|
|
}
|
|
for (f = m;f < q;f += p) {
|
|
h[f] = b << 16 | n;
|
|
}
|
|
++d;
|
|
}
|
|
}
|
|
}
|
|
return{codes:h, maxBits:c};
|
|
}
|
|
var f;
|
|
(function(a) {
|
|
a[a.INIT = 0] = "INIT";
|
|
a[a.BLOCK_0 = 1] = "BLOCK_0";
|
|
a[a.BLOCK_1 = 2] = "BLOCK_1";
|
|
a[a.BLOCK_2_PRE = 3] = "BLOCK_2_PRE";
|
|
a[a.BLOCK_2 = 4] = "BLOCK_2";
|
|
a[a.DONE = 5] = "DONE";
|
|
a[a.ERROR = 6] = "ERROR";
|
|
a[a.VERIFY_HEADER = 7] = "VERIFY_HEADER";
|
|
})(f || (f = {}));
|
|
f = function() {
|
|
function e(l) {
|
|
this._buffer = new Uint8Array(1024);
|
|
this._bitLength = this._bitBuffer = this._bufferPosition = this._bufferSize = 0;
|
|
this._window = new Uint8Array(65794);
|
|
this._windowPosition = 0;
|
|
this._state = l ? 7 : 0;
|
|
this._isFinalBlock = !1;
|
|
this._distanceTable = this._literalTable = null;
|
|
this._block0Read = 0;
|
|
this._block2State = null;
|
|
this._copyState = {state:0, len:0, lenBits:0, dist:0, distBits:0};
|
|
this._error = void 0;
|
|
if (!p) {
|
|
t = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
|
|
s = new Uint16Array(30);
|
|
m = new Uint8Array(30);
|
|
for (var q = l = 0, r = 1;30 > l;++l) {
|
|
s[l] = r, r += 1 << (m[l] = ~~((q += 2 < l ? 1 : 0) / 2));
|
|
}
|
|
var h = new Uint8Array(288);
|
|
for (l = 0;32 > l;++l) {
|
|
h[l] = 5;
|
|
}
|
|
d = g(h.subarray(0, 32));
|
|
a = new Uint16Array(29);
|
|
c = new Uint8Array(29);
|
|
q = l = 0;
|
|
for (r = 3;29 > l;++l) {
|
|
a[l] = r - (28 == l ? 1 : 0), r += 1 << (c[l] = ~~((q += 4 < l ? 1 : 0) / 4 % 6));
|
|
}
|
|
for (l = 0;288 > l;++l) {
|
|
h[l] = 144 > l || 279 < l ? 8 : 256 > l ? 9 : 7;
|
|
}
|
|
n = g(h);
|
|
p = !0;
|
|
}
|
|
}
|
|
Object.defineProperty(e.prototype, "error", {get:function() {
|
|
return this._error;
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype.push = function(a) {
|
|
if (this._buffer.length < this._bufferSize + a.length) {
|
|
var c = new Uint8Array(this._bufferSize + a.length);
|
|
c.set(this._buffer);
|
|
this._buffer = c;
|
|
}
|
|
this._buffer.set(a, this._bufferSize);
|
|
this._bufferSize += a.length;
|
|
this._bufferPosition = 0;
|
|
a = !1;
|
|
do {
|
|
c = this._windowPosition;
|
|
if (0 === this._state && (a = this._decodeInitState())) {
|
|
break;
|
|
}
|
|
switch(this._state) {
|
|
case 1:
|
|
a = this._decodeBlock0();
|
|
break;
|
|
case 3:
|
|
if (a = this._decodeBlock2Pre()) {
|
|
break;
|
|
}
|
|
;
|
|
case 2:
|
|
;
|
|
case 4:
|
|
a = this._decodeBlock();
|
|
break;
|
|
case 6:
|
|
;
|
|
case 5:
|
|
this._bufferPosition = this._bufferSize;
|
|
break;
|
|
case 7:
|
|
a = this._verifyZlibHeader();
|
|
}
|
|
if (0 < this._windowPosition - c) {
|
|
this.onData(this._window.subarray(c, this._windowPosition));
|
|
}
|
|
65536 <= this._windowPosition && (this._window.set(this._window.subarray(this._windowPosition - 32768, this._windowPosition)), this._windowPosition = 32768);
|
|
} while (!a && this._bufferPosition < this._bufferSize);
|
|
this._bufferPosition < this._bufferSize ? (this._buffer.set(this._buffer.subarray(this._bufferPosition, this._bufferSize)), this._bufferSize -= this._bufferPosition) : this._bufferSize = 0;
|
|
};
|
|
e.prototype._verifyZlibHeader = function() {
|
|
var a = this._bufferPosition;
|
|
if (a + 2 > this._bufferSize) {
|
|
return!0;
|
|
}
|
|
var c = this._buffer, c = c[a] << 8 | c[a + 1];
|
|
this._bufferPosition = a + 2;
|
|
a = null;
|
|
2048 !== (c & 3840) ? a = "inflate: unknown compression method" : 0 !== c % 31 ? a = "inflate: bad FCHECK" : 0 !== (c & 32) && (a = "inflate: FDICT bit set");
|
|
a ? (this._error = a, this._state = 6) : this._state = 0;
|
|
};
|
|
e.prototype._decodeInitState = function() {
|
|
if (this._isFinalBlock) {
|
|
return this._state = 5, !1;
|
|
}
|
|
var a = this._buffer, c = this._bufferSize, e = this._bitBuffer, h = this._bitLength, l = this._bufferPosition;
|
|
if (3 > (c - l << 3) + h) {
|
|
return!0;
|
|
}
|
|
3 > h && (e |= a[l++] << h, h += 8);
|
|
var q = e & 7, e = e >> 3, h = h - 3;
|
|
switch(q >> 1) {
|
|
case 0:
|
|
h = e = 0;
|
|
if (4 > c - l) {
|
|
return!0;
|
|
}
|
|
var b = a[l] | a[l + 1] << 8, a = a[l + 2] | a[l + 3] << 8, l = l + 4;
|
|
if (65535 !== (b ^ a)) {
|
|
this._error = "inflate: invalid block 0 length";
|
|
a = 6;
|
|
break;
|
|
}
|
|
0 === b ? a = 0 : (this._block0Read = b, a = 1);
|
|
break;
|
|
case 1:
|
|
a = 2;
|
|
this._literalTable = n;
|
|
this._distanceTable = d;
|
|
break;
|
|
case 2:
|
|
if (26 > (c - l << 3) + h) {
|
|
return!0;
|
|
}
|
|
for (;14 > h;) {
|
|
e |= a[l++] << h, h += 8;
|
|
}
|
|
b = (e >> 10 & 15) + 4;
|
|
if ((c - l << 3) + h < 14 + 3 * b) {
|
|
return!0;
|
|
}
|
|
for (var c = {numLiteralCodes:(e & 31) + 257, numDistanceCodes:(e >> 5 & 31) + 1, codeLengthTable:void 0, bitLengths:void 0, codesRead:0, dupBits:0}, e = e >> 14, h = h - 14, p = new Uint8Array(19), m = 0;m < b;++m) {
|
|
3 > h && (e |= a[l++] << h, h += 8), p[t[m]] = e & 7, e >>= 3, h -= 3;
|
|
}
|
|
for (;19 > m;m++) {
|
|
p[t[m]] = 0;
|
|
}
|
|
c.bitLengths = new Uint8Array(c.numLiteralCodes + c.numDistanceCodes);
|
|
c.codeLengthTable = g(p);
|
|
this._block2State = c;
|
|
a = 3;
|
|
break;
|
|
default:
|
|
return this._error = "inflate: unsupported block type", !1;
|
|
}
|
|
this._isFinalBlock = !!(q & 1);
|
|
this._state = a;
|
|
this._bufferPosition = l;
|
|
this._bitBuffer = e;
|
|
this._bitLength = h;
|
|
return!1;
|
|
};
|
|
e.prototype._decodeBlock0 = function() {
|
|
var a = this._bufferPosition, c = this._windowPosition, e = this._block0Read, h = 65794 - c, l = this._bufferSize - a, q = l < e, d = Math.min(h, l, e);
|
|
this._window.set(this._buffer.subarray(a, a + d), c);
|
|
this._windowPosition = c + d;
|
|
this._bufferPosition = a + d;
|
|
this._block0Read = e - d;
|
|
return e === d ? (this._state = 0, !1) : q && h < l;
|
|
};
|
|
e.prototype._readBits = function(a) {
|
|
var c = this._bitBuffer, e = this._bitLength;
|
|
if (a > e) {
|
|
var h = this._bufferPosition, l = this._bufferSize;
|
|
do {
|
|
if (h >= l) {
|
|
return this._bufferPosition = h, this._bitBuffer = c, this._bitLength = e, -1;
|
|
}
|
|
c |= this._buffer[h++] << e;
|
|
e += 8;
|
|
} while (a > e);
|
|
this._bufferPosition = h;
|
|
}
|
|
this._bitBuffer = c >> a;
|
|
this._bitLength = e - a;
|
|
return c & (1 << a) - 1;
|
|
};
|
|
e.prototype._readCode = function(a) {
|
|
var c = this._bitBuffer, e = this._bitLength, h = a.maxBits;
|
|
if (h > e) {
|
|
var l = this._bufferPosition, q = this._bufferSize;
|
|
do {
|
|
if (l >= q) {
|
|
return this._bufferPosition = l, this._bitBuffer = c, this._bitLength = e, -1;
|
|
}
|
|
c |= this._buffer[l++] << e;
|
|
e += 8;
|
|
} while (h > e);
|
|
this._bufferPosition = l;
|
|
}
|
|
a = a.codes[c & (1 << h) - 1];
|
|
h = a >> 16;
|
|
if (a & 32768) {
|
|
return this._error = "inflate: invalid encoding", this._state = 6, -1;
|
|
}
|
|
this._bitBuffer = c >> h;
|
|
this._bitLength = e - h;
|
|
return a & 65535;
|
|
};
|
|
e.prototype._decodeBlock2Pre = function() {
|
|
var a = this._block2State, c = a.numLiteralCodes + a.numDistanceCodes, e = a.bitLengths, h = a.codesRead, l = 0 < h ? e[h - 1] : 0, q = a.codeLengthTable, d;
|
|
if (0 < a.dupBits) {
|
|
d = this._readBits(a.dupBits);
|
|
if (0 > d) {
|
|
return!0;
|
|
}
|
|
for (;d--;) {
|
|
e[h++] = l;
|
|
}
|
|
a.dupBits = 0;
|
|
}
|
|
for (;h < c;) {
|
|
var b = this._readCode(q);
|
|
if (0 > b) {
|
|
return a.codesRead = h, !0;
|
|
}
|
|
if (16 > b) {
|
|
e[h++] = l = b;
|
|
} else {
|
|
var p;
|
|
switch(b) {
|
|
case 16:
|
|
p = 2;
|
|
d = 3;
|
|
b = l;
|
|
break;
|
|
case 17:
|
|
d = p = 3;
|
|
b = 0;
|
|
break;
|
|
case 18:
|
|
p = 7, d = 11, b = 0;
|
|
}
|
|
for (;d--;) {
|
|
e[h++] = b;
|
|
}
|
|
d = this._readBits(p);
|
|
if (0 > d) {
|
|
return a.codesRead = h, a.dupBits = p, !0;
|
|
}
|
|
for (;d--;) {
|
|
e[h++] = b;
|
|
}
|
|
l = b;
|
|
}
|
|
}
|
|
this._literalTable = g(e.subarray(0, a.numLiteralCodes));
|
|
this._distanceTable = g(e.subarray(a.numLiteralCodes));
|
|
this._state = 4;
|
|
this._block2State = null;
|
|
return!1;
|
|
};
|
|
e.prototype._decodeBlock = function() {
|
|
var e = this._literalTable, l = this._distanceTable, q = this._window, h = this._windowPosition, d = this._copyState, b, p, n, f;
|
|
if (0 !== d.state) {
|
|
switch(d.state) {
|
|
case 1:
|
|
if (0 > (b = this._readBits(d.lenBits))) {
|
|
return!0;
|
|
}
|
|
d.len += b;
|
|
d.state = 2;
|
|
case 2:
|
|
if (0 > (b = this._readCode(l))) {
|
|
return!0;
|
|
}
|
|
d.distBits = m[b];
|
|
d.dist = s[b];
|
|
d.state = 3;
|
|
case 3:
|
|
b = 0;
|
|
if (0 < d.distBits && 0 > (b = this._readBits(d.distBits))) {
|
|
return!0;
|
|
}
|
|
f = d.dist + b;
|
|
p = d.len;
|
|
for (b = h - f;p--;) {
|
|
q[h++] = q[b++];
|
|
}
|
|
d.state = 0;
|
|
if (65536 <= h) {
|
|
return this._windowPosition = h, !1;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
do {
|
|
b = this._readCode(e);
|
|
if (0 > b) {
|
|
return this._windowPosition = h, !0;
|
|
}
|
|
if (256 > b) {
|
|
q[h++] = b;
|
|
} else {
|
|
if (256 < b) {
|
|
this._windowPosition = h;
|
|
b -= 257;
|
|
n = c[b];
|
|
p = a[b];
|
|
b = 0 === n ? 0 : this._readBits(n);
|
|
if (0 > b) {
|
|
return d.state = 1, d.len = p, d.lenBits = n, !0;
|
|
}
|
|
p += b;
|
|
b = this._readCode(l);
|
|
if (0 > b) {
|
|
return d.state = 2, d.len = p, !0;
|
|
}
|
|
n = m[b];
|
|
f = s[b];
|
|
b = 0 === n ? 0 : this._readBits(n);
|
|
if (0 > b) {
|
|
return d.state = 3, d.len = p, d.dist = f, d.distBits = n, !0;
|
|
}
|
|
f += b;
|
|
for (b = h - f;p--;) {
|
|
q[h++] = q[b++];
|
|
}
|
|
} else {
|
|
this._state = 0;
|
|
break;
|
|
}
|
|
}
|
|
} while (65536 > h);
|
|
this._windowPosition = h;
|
|
return!1;
|
|
};
|
|
e.inflate = function(a, c, q) {
|
|
var h = new Uint8Array(c), d = 0;
|
|
c = new e(q);
|
|
c.onData = function(a) {
|
|
h.set(a, d);
|
|
d += a.length;
|
|
};
|
|
c.push(a);
|
|
return h;
|
|
};
|
|
return e;
|
|
}();
|
|
b.Inflate = f;
|
|
var t, s, m, d, a, c, n, p = !1, e;
|
|
(function(a) {
|
|
a[a.WRITE = 0] = "WRITE";
|
|
a[a.DONE = 1] = "DONE";
|
|
a[a.ZLIB_HEADER = 2] = "ZLIB_HEADER";
|
|
})(e || (e = {}));
|
|
var q = function() {
|
|
function a() {
|
|
this.a = 1;
|
|
this.b = 0;
|
|
}
|
|
a.prototype.update = function(a, c, e) {
|
|
for (var h = this.a, l = this.b;c < e;++c) {
|
|
h = (h + (a[c] & 255)) % 65521, l = (l + h) % 65521;
|
|
}
|
|
this.a = h;
|
|
this.b = l;
|
|
};
|
|
a.prototype.getChecksum = function() {
|
|
return this.b << 16 | this.a;
|
|
};
|
|
return a;
|
|
}();
|
|
b.Adler32 = q;
|
|
e = function() {
|
|
function a(c) {
|
|
this._state = (this._writeZlibHeader = c) ? 2 : 0;
|
|
this._adler32 = c ? new q : null;
|
|
}
|
|
a.prototype.push = function(a) {
|
|
2 === this._state && (this.onData(new Uint8Array([120, 156])), this._state = 0);
|
|
for (var c = a.length, e = new Uint8Array(c + 5 * Math.ceil(c / 65535)), h = 0, l = 0;65535 < c;) {
|
|
e.set(new Uint8Array([0, 255, 255, 0, 0]), h), h += 5, e.set(a.subarray(l, l + 65535), h), l += 65535, h += 65535, c -= 65535;
|
|
}
|
|
e.set(new Uint8Array([0, c & 255, c >> 8 & 255, ~c & 255, ~c >> 8 & 255]), h);
|
|
e.set(a.subarray(l, c), h + 5);
|
|
this.onData(e);
|
|
this._adler32 && this._adler32.update(a, 0, c);
|
|
};
|
|
a.prototype.finish = function() {
|
|
this._state = 1;
|
|
this.onData(new Uint8Array([1, 0, 0, 255, 255]));
|
|
if (this._adler32) {
|
|
var a = this._adler32.getChecksum();
|
|
this.onData(new Uint8Array([a & 255, a >> 8 & 255, a >> 16 & 255, a >>> 24 & 255]));
|
|
}
|
|
};
|
|
return a;
|
|
}();
|
|
b.Deflate = e;
|
|
})(b.ArrayUtilities || (b.ArrayUtilities = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
function g() {
|
|
t("throwEOFError");
|
|
}
|
|
function f(a) {
|
|
return "string" === typeof a ? a : void 0 == a ? null : a + "";
|
|
}
|
|
var t = b.Debug.notImplemented, s = b.StringUtilities.utf8decode, m = b.StringUtilities.utf8encode, d = b.NumberUtilities.clamp, a = function() {
|
|
return function(a, c, l) {
|
|
this.buffer = a;
|
|
this.length = c;
|
|
this.littleEndian = l;
|
|
};
|
|
}();
|
|
k.PlainObjectDataBuffer = a;
|
|
for (var c = new Uint32Array(33), n = 1, p = 0;32 >= n;n++) {
|
|
c[n] = p = p << 1 | 1;
|
|
}
|
|
n = function() {
|
|
function e(a) {
|
|
"undefined" === typeof a && (a = e.INITIAL_SIZE);
|
|
this._buffer || (this._buffer = new ArrayBuffer(a), this._position = this._length = 0, this._updateViews(), this._littleEndian = e._nativeLittleEndian, this._bitLength = this._bitBuffer = 0);
|
|
}
|
|
e.FromArrayBuffer = function(a, c) {
|
|
"undefined" === typeof c && (c = -1);
|
|
var d = Object.create(e.prototype);
|
|
d._buffer = a;
|
|
d._length = -1 === c ? a.byteLength : c;
|
|
d._position = 0;
|
|
d._updateViews();
|
|
d._littleEndian = e._nativeLittleEndian;
|
|
d._bitBuffer = 0;
|
|
d._bitLength = 0;
|
|
return d;
|
|
};
|
|
e.FromPlainObject = function(a) {
|
|
var c = e.FromArrayBuffer(a.buffer, a.length);
|
|
c._littleEndian = a.littleEndian;
|
|
return c;
|
|
};
|
|
e.prototype.toPlainObject = function() {
|
|
return new a(this._buffer, this._length, this._littleEndian);
|
|
};
|
|
e.prototype._updateViews = function() {
|
|
this._u8 = new Uint8Array(this._buffer);
|
|
0 === (this._buffer.byteLength & 3) && (this._i32 = new Int32Array(this._buffer), this._f32 = new Float32Array(this._buffer));
|
|
};
|
|
e.prototype.getBytes = function() {
|
|
return new Uint8Array(this._buffer, 0, this._length);
|
|
};
|
|
e.prototype._ensureCapacity = function(a) {
|
|
var c = this._buffer;
|
|
if (c.byteLength < a) {
|
|
for (var d = Math.max(c.byteLength, 1);d < a;) {
|
|
d *= 2;
|
|
}
|
|
a = e._arrayBufferPool.acquire(d);
|
|
d = this._u8;
|
|
this._buffer = a;
|
|
this._updateViews();
|
|
this._u8.set(d);
|
|
e._arrayBufferPool.release(c);
|
|
}
|
|
};
|
|
e.prototype.clear = function() {
|
|
this._position = this._length = 0;
|
|
};
|
|
e.prototype.readBoolean = function() {
|
|
return 0 !== this.readUnsignedByte();
|
|
};
|
|
e.prototype.readByte = function() {
|
|
return this.readUnsignedByte() << 24 >> 24;
|
|
};
|
|
e.prototype.readUnsignedByte = function() {
|
|
this._position + 1 > this._length && g();
|
|
return this._u8[this._position++];
|
|
};
|
|
e.prototype.readBytes = function(a, c, e) {
|
|
"undefined" === typeof c && (c = 0);
|
|
"undefined" === typeof e && (e = 0);
|
|
var d = this._position;
|
|
c || (c = 0);
|
|
e || (e = this._length - d);
|
|
d + e > this._length && g();
|
|
a.length < c + e && (a._ensureCapacity(c + e), a.length = c + e);
|
|
a._u8.set(new Uint8Array(this._buffer, d, e), c);
|
|
this._position += e;
|
|
};
|
|
e.prototype.readShort = function() {
|
|
return this.readUnsignedShort() << 16 >> 16;
|
|
};
|
|
e.prototype.readUnsignedShort = function() {
|
|
var a = this._u8, c = this._position;
|
|
c + 2 > this._length && g();
|
|
var e = a[c + 0], a = a[c + 1];
|
|
this._position = c + 2;
|
|
return this._littleEndian ? a << 8 | e : e << 8 | a;
|
|
};
|
|
e.prototype.readInt = function() {
|
|
var a = this._u8, c = this._position;
|
|
c + 4 > this._length && g();
|
|
var e = a[c + 0], d = a[c + 1], b = a[c + 2], a = a[c + 3];
|
|
this._position = c + 4;
|
|
return this._littleEndian ? a << 24 | b << 16 | d << 8 | e : e << 24 | d << 16 | b << 8 | a;
|
|
};
|
|
e.prototype.readUnsignedInt = function() {
|
|
return this.readInt() >>> 0;
|
|
};
|
|
e.prototype.readFloat = function() {
|
|
var a = this._position;
|
|
a + 4 > this._length && g();
|
|
this._position = a + 4;
|
|
if (this._littleEndian && 0 === (a & 3) && this._f32) {
|
|
return this._f32[a >> 2];
|
|
}
|
|
var c = this._u8, e = b.IntegerUtilities.u8;
|
|
this._littleEndian ? (e[0] = c[a + 0], e[1] = c[a + 1], e[2] = c[a + 2], e[3] = c[a + 3]) : (e[3] = c[a + 0], e[2] = c[a + 1], e[1] = c[a + 2], e[0] = c[a + 3]);
|
|
return b.IntegerUtilities.f32[0];
|
|
};
|
|
e.prototype.readDouble = function() {
|
|
var a = this._u8, c = this._position;
|
|
c + 8 > this._length && g();
|
|
var e = b.IntegerUtilities.u8;
|
|
this._littleEndian ? (e[0] = a[c + 0], e[1] = a[c + 1], e[2] = a[c + 2], e[3] = a[c + 3], e[4] = a[c + 4], e[5] = a[c + 5], e[6] = a[c + 6], e[7] = a[c + 7]) : (e[0] = a[c + 7], e[1] = a[c + 6], e[2] = a[c + 5], e[3] = a[c + 4], e[4] = a[c + 3], e[5] = a[c + 2], e[6] = a[c + 1], e[7] = a[c + 0]);
|
|
this._position = c + 8;
|
|
return b.IntegerUtilities.f64[0];
|
|
};
|
|
e.prototype.writeBoolean = function(a) {
|
|
this.writeByte(a ? 1 : 0);
|
|
};
|
|
e.prototype.writeByte = function(a) {
|
|
var c = this._position + 1;
|
|
this._ensureCapacity(c);
|
|
this._u8[this._position++] = a;
|
|
c > this._length && (this._length = c);
|
|
};
|
|
e.prototype.writeUnsignedByte = function(a) {
|
|
var c = this._position + 1;
|
|
this._ensureCapacity(c);
|
|
this._u8[this._position++] = a;
|
|
c > this._length && (this._length = c);
|
|
};
|
|
e.prototype.writeRawBytes = function(a) {
|
|
var c = this._position + a.length;
|
|
this._ensureCapacity(c);
|
|
this._u8.set(a, this._position);
|
|
this._position = c;
|
|
c > this._length && (this._length = c);
|
|
};
|
|
e.prototype.writeBytes = function(a, c, e) {
|
|
"undefined" === typeof c && (c = 0);
|
|
"undefined" === typeof e && (e = 0);
|
|
2 > arguments.length && (c = 0);
|
|
3 > arguments.length && (e = 0);
|
|
c !== d(c, 0, a.length) && t("throwRangeError");
|
|
var b = c + e;
|
|
b !== d(b, 0, a.length) && t("throwRangeError");
|
|
0 === e && (e = a.length - c);
|
|
this.writeRawBytes(new Int8Array(a._buffer, c, e));
|
|
};
|
|
e.prototype.writeShort = function(a) {
|
|
this.writeUnsignedShort(a);
|
|
};
|
|
e.prototype.writeUnsignedShort = function(a) {
|
|
var c = this._position;
|
|
this._ensureCapacity(c + 2);
|
|
var e = this._u8;
|
|
this._littleEndian ? (e[c + 0] = a, e[c + 1] = a >> 8) : (e[c + 0] = a >> 8, e[c + 1] = a);
|
|
this._position = c += 2;
|
|
c > this._length && (this._length = c);
|
|
};
|
|
e.prototype.writeInt = function(a) {
|
|
this.writeUnsignedInt(a);
|
|
};
|
|
e.prototype.write4Ints = function(a, c, e, d) {
|
|
this.write4UnsignedInts(a, c, e, d);
|
|
};
|
|
e.prototype.writeUnsignedInt = function(a) {
|
|
var c = this._position;
|
|
this._ensureCapacity(c + 4);
|
|
if (this._littleEndian === e._nativeLittleEndian && 0 === (c & 3) && this._i32) {
|
|
this._i32[c >> 2] = a;
|
|
} else {
|
|
var d = this._u8;
|
|
this._littleEndian ? (d[c + 0] = a, d[c + 1] = a >> 8, d[c + 2] = a >> 16, d[c + 3] = a >> 24) : (d[c + 0] = a >> 24, d[c + 1] = a >> 16, d[c + 2] = a >> 8, d[c + 3] = a);
|
|
}
|
|
this._position = c += 4;
|
|
c > this._length && (this._length = c);
|
|
};
|
|
e.prototype.write4UnsignedInts = function(a, c, d, b) {
|
|
var p = this._position;
|
|
this._ensureCapacity(p + 16);
|
|
this._littleEndian === e._nativeLittleEndian && 0 === (p & 3) && this._i32 ? (this._i32[(p >> 2) + 0] = a, this._i32[(p >> 2) + 1] = c, this._i32[(p >> 2) + 2] = d, this._i32[(p >> 2) + 3] = b, this._position = p += 16, p > this._length && (this._length = p)) : (this.writeUnsignedInt(a), this.writeUnsignedInt(c), this.writeUnsignedInt(d), this.writeUnsignedInt(b));
|
|
};
|
|
e.prototype.writeFloat = function(a) {
|
|
var c = this._position;
|
|
this._ensureCapacity(c + 4);
|
|
if (this._littleEndian === e._nativeLittleEndian && 0 === (c & 3) && this._f32) {
|
|
this._f32[c >> 2] = a;
|
|
} else {
|
|
var d = this._u8;
|
|
b.IntegerUtilities.f32[0] = a;
|
|
a = b.IntegerUtilities.u8;
|
|
this._littleEndian ? (d[c + 0] = a[0], d[c + 1] = a[1], d[c + 2] = a[2], d[c + 3] = a[3]) : (d[c + 0] = a[3], d[c + 1] = a[2], d[c + 2] = a[1], d[c + 3] = a[0]);
|
|
}
|
|
this._position = c += 4;
|
|
c > this._length && (this._length = c);
|
|
};
|
|
e.prototype.write6Floats = function(a, c, d, b, p, h) {
|
|
var n = this._position;
|
|
this._ensureCapacity(n + 24);
|
|
this._littleEndian === e._nativeLittleEndian && 0 === (n & 3) && this._f32 ? (this._f32[(n >> 2) + 0] = a, this._f32[(n >> 2) + 1] = c, this._f32[(n >> 2) + 2] = d, this._f32[(n >> 2) + 3] = b, this._f32[(n >> 2) + 4] = p, this._f32[(n >> 2) + 5] = h, this._position = n += 24, n > this._length && (this._length = n)) : (this.writeFloat(a), this.writeFloat(c), this.writeFloat(d), this.writeFloat(b), this.writeFloat(p), this.writeFloat(h));
|
|
};
|
|
e.prototype.writeDouble = function(a) {
|
|
var c = this._position;
|
|
this._ensureCapacity(c + 8);
|
|
var e = this._u8;
|
|
b.IntegerUtilities.f64[0] = a;
|
|
a = b.IntegerUtilities.u8;
|
|
this._littleEndian ? (e[c + 0] = a[0], e[c + 1] = a[1], e[c + 2] = a[2], e[c + 3] = a[3], e[c + 4] = a[4], e[c + 5] = a[5], e[c + 6] = a[6], e[c + 7] = a[7]) : (e[c + 0] = a[7], e[c + 1] = a[6], e[c + 2] = a[5], e[c + 3] = a[4], e[c + 4] = a[3], e[c + 5] = a[2], e[c + 6] = a[1], e[c + 7] = a[0]);
|
|
this._position = c += 8;
|
|
c > this._length && (this._length = c);
|
|
};
|
|
e.prototype.readRawBytes = function() {
|
|
return new Int8Array(this._buffer, 0, this._length);
|
|
};
|
|
e.prototype.writeUTF = function(a) {
|
|
a = f(a);
|
|
a = s(a);
|
|
this.writeShort(a.length);
|
|
this.writeRawBytes(a);
|
|
};
|
|
e.prototype.writeUTFBytes = function(a) {
|
|
a = f(a);
|
|
a = s(a);
|
|
this.writeRawBytes(a);
|
|
};
|
|
e.prototype.readUTF = function() {
|
|
return this.readUTFBytes(this.readShort());
|
|
};
|
|
e.prototype.readUTFBytes = function(a) {
|
|
a >>>= 0;
|
|
var c = this._position;
|
|
c + a > this._length && g();
|
|
this._position += a;
|
|
return m(new Int8Array(this._buffer, c, a));
|
|
};
|
|
Object.defineProperty(e.prototype, "length", {get:function() {
|
|
return this._length;
|
|
}, set:function(a) {
|
|
a >>>= 0;
|
|
a > this._buffer.byteLength && this._ensureCapacity(a);
|
|
this._length = a;
|
|
this._position = d(this._position, 0, this._length);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "bytesAvailable", {get:function() {
|
|
return this._length - this._position;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "position", {get:function() {
|
|
return this._position;
|
|
}, set:function(a) {
|
|
this._position = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "buffer", {get:function() {
|
|
return this._buffer;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "bytes", {get:function() {
|
|
return this._u8;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "ints", {get:function() {
|
|
return this._i32;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "objectEncoding", {get:function() {
|
|
return this._objectEncoding;
|
|
}, set:function(a) {
|
|
this._objectEncoding = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "endian", {get:function() {
|
|
return this._littleEndian ? "littleEndian" : "bigEndian";
|
|
}, set:function(a) {
|
|
a = f(a);
|
|
this._littleEndian = "auto" === a ? e._nativeLittleEndian : "littleEndian" === a;
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype.toString = function() {
|
|
return m(new Int8Array(this._buffer, 0, this._length));
|
|
};
|
|
e.prototype.toBlob = function() {
|
|
return new Blob([new Int8Array(this._buffer, this._position, this._length)]);
|
|
};
|
|
e.prototype.writeMultiByte = function(a, c) {
|
|
t("packageInternal flash.utils.ObjectOutput::writeMultiByte");
|
|
};
|
|
e.prototype.readMultiByte = function(a, c) {
|
|
t("packageInternal flash.utils.ObjectInput::readMultiByte");
|
|
};
|
|
e.prototype.getValue = function(a) {
|
|
a |= 0;
|
|
return a >= this._length ? void 0 : this._u8[a];
|
|
};
|
|
e.prototype.setValue = function(a, c) {
|
|
a |= 0;
|
|
var e = a + 1;
|
|
this._ensureCapacity(e);
|
|
this._u8[a] = c;
|
|
e > this._length && (this._length = e);
|
|
};
|
|
e.prototype.readFixed = function() {
|
|
return this.readInt() / 65536;
|
|
};
|
|
e.prototype.readFixed8 = function() {
|
|
return this.readShort() / 256;
|
|
};
|
|
e.prototype.readFloat16 = function() {
|
|
var a = this.readUnsignedShort(), c = a >> 15 ? -1 : 1, e = (a & 31744) >> 10, a = a & 1023;
|
|
return e ? 31 === e ? a ? NaN : Infinity * c : c * Math.pow(2, e - 15) * (1 + a / 1024) : a / 1024 * Math.pow(2, -14) * c;
|
|
};
|
|
e.prototype.readEncodedU32 = function() {
|
|
var a = this.readUnsignedByte();
|
|
if (!(a & 128)) {
|
|
return a;
|
|
}
|
|
a = a & 127 | this.readUnsignedByte() << 7;
|
|
if (!(a & 16384)) {
|
|
return a;
|
|
}
|
|
a = a & 16383 | this.readUnsignedByte() << 14;
|
|
if (!(a & 2097152)) {
|
|
return a;
|
|
}
|
|
a = a & 2097151 | this.readUnsignedByte() << 21;
|
|
return a & 268435456 ? a & 268435455 | this.readUnsignedByte() << 28 : a;
|
|
};
|
|
e.prototype.readBits = function(a) {
|
|
return this.readUnsignedBits(a) << 32 - a >> 32 - a;
|
|
};
|
|
e.prototype.readUnsignedBits = function(a) {
|
|
for (var e = this._bitBuffer, d = this._bitLength;a > d;) {
|
|
e = e << 8 | this.readUnsignedByte(), d += 8;
|
|
}
|
|
d -= a;
|
|
a = e >>> d & c[a];
|
|
this._bitBuffer = e;
|
|
this._bitLength = d;
|
|
return a;
|
|
};
|
|
e.prototype.readFixedBits = function(a) {
|
|
return this.readBits(a) / 65536;
|
|
};
|
|
e.prototype.readString = function(a) {
|
|
var c = this._position;
|
|
if (a) {
|
|
c + a > this._length && g(), this._position += a;
|
|
} else {
|
|
a = 0;
|
|
for (var e = c;e < this._length && this._u8[e];e++) {
|
|
a++;
|
|
}
|
|
this._position += a + 1;
|
|
}
|
|
return m(new Int8Array(this._buffer, c, a));
|
|
};
|
|
e.prototype.align = function() {
|
|
this._bitLength = this._bitBuffer = 0;
|
|
};
|
|
e.prototype._compress = function(a) {
|
|
a = f(a);
|
|
switch(a) {
|
|
case "zlib":
|
|
a = new k.Deflate(!0);
|
|
break;
|
|
case "deflate":
|
|
a = new k.Deflate(!1);
|
|
break;
|
|
default:
|
|
return;
|
|
}
|
|
var c = new e;
|
|
a.onData = c.writeRawBytes.bind(c);
|
|
a.push(this._u8.subarray(0, this._length));
|
|
a.finish();
|
|
this._ensureCapacity(c._u8.length);
|
|
this._u8.set(c._u8);
|
|
this.length = c.length;
|
|
this._position = 0;
|
|
};
|
|
e.prototype._uncompress = function(a) {
|
|
a = f(a);
|
|
switch(a) {
|
|
case "zlib":
|
|
a = new k.Inflate(!0);
|
|
break;
|
|
case "deflate":
|
|
a = new k.Inflate(!1);
|
|
break;
|
|
default:
|
|
return;
|
|
}
|
|
var c = new e;
|
|
a.onData = c.writeRawBytes.bind(c);
|
|
a.push(this._u8.subarray(0, this._length));
|
|
a.error && t("throwCompressedDataError");
|
|
this._ensureCapacity(c._u8.length);
|
|
this._u8.set(c._u8);
|
|
this.length = c.length;
|
|
this._position = 0;
|
|
};
|
|
e._nativeLittleEndian = 1 === (new Int8Array((new Int32Array([1])).buffer))[0];
|
|
e.INITIAL_SIZE = 128;
|
|
e._arrayBufferPool = new b.ArrayBufferPool;
|
|
return e;
|
|
}();
|
|
k.DataBuffer = n;
|
|
})(b.ArrayUtilities || (b.ArrayUtilities = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
var k = b.ArrayUtilities.DataBuffer, g = b.ArrayUtilities.ensureTypedArrayCapacity, f = b.Debug.assert;
|
|
(function(b) {
|
|
b[b.BeginSolidFill = 1] = "BeginSolidFill";
|
|
b[b.BeginGradientFill = 2] = "BeginGradientFill";
|
|
b[b.BeginBitmapFill = 3] = "BeginBitmapFill";
|
|
b[b.EndFill = 4] = "EndFill";
|
|
b[b.LineStyleSolid = 5] = "LineStyleSolid";
|
|
b[b.LineStyleGradient = 6] = "LineStyleGradient";
|
|
b[b.LineStyleBitmap = 7] = "LineStyleBitmap";
|
|
b[b.LineEnd = 8] = "LineEnd";
|
|
b[b.MoveTo = 9] = "MoveTo";
|
|
b[b.LineTo = 10] = "LineTo";
|
|
b[b.CurveTo = 11] = "CurveTo";
|
|
b[b.CubicCurveTo = 12] = "CubicCurveTo";
|
|
})(b.PathCommand || (b.PathCommand = {}));
|
|
(function(b) {
|
|
b[b.Linear = 16] = "Linear";
|
|
b[b.Radial = 18] = "Radial";
|
|
})(b.GradientType || (b.GradientType = {}));
|
|
(function(b) {
|
|
b[b.Pad = 0] = "Pad";
|
|
b[b.Reflect = 1] = "Reflect";
|
|
b[b.Repeat = 2] = "Repeat";
|
|
})(b.GradientSpreadMethod || (b.GradientSpreadMethod = {}));
|
|
(function(b) {
|
|
b[b.RGB = 0] = "RGB";
|
|
b[b.LinearRGB = 1] = "LinearRGB";
|
|
})(b.GradientInterpolationMethod || (b.GradientInterpolationMethod = {}));
|
|
(function(b) {
|
|
b[b.None = 0] = "None";
|
|
b[b.Normal = 1] = "Normal";
|
|
b[b.Vertical = 2] = "Vertical";
|
|
b[b.Horizontal = 3] = "Horizontal";
|
|
})(b.LineScaleMode || (b.LineScaleMode = {}));
|
|
var t = function() {
|
|
return function(b, d, a, c, n, p, e, q, l) {
|
|
this.commands = b;
|
|
this.commandsPosition = d;
|
|
this.coordinates = a;
|
|
this.coordinatesPosition = c;
|
|
this.morphCoordinates = n;
|
|
this.styles = p;
|
|
this.stylesLength = e;
|
|
this.hasFills = q;
|
|
this.hasLines = l;
|
|
};
|
|
}();
|
|
b.PlainObjectShapeData = t;
|
|
var s;
|
|
(function(b) {
|
|
b[b.Commands = 32] = "Commands";
|
|
b[b.Coordinates = 128] = "Coordinates";
|
|
b[b.Styles = 16] = "Styles";
|
|
})(s || (s = {}));
|
|
s = function() {
|
|
function b(d) {
|
|
"undefined" === typeof d && (d = !0);
|
|
d && this.clear();
|
|
}
|
|
b.FromPlainObject = function(d) {
|
|
var a = new b(!1);
|
|
a.commands = d.commands;
|
|
a.coordinates = d.coordinates;
|
|
a.morphCoordinates = d.morphCoordinates;
|
|
a.commandsPosition = d.commandsPosition;
|
|
a.coordinatesPosition = d.coordinatesPosition;
|
|
a.styles = k.FromArrayBuffer(d.styles, d.stylesLength);
|
|
a.styles.endian = "auto";
|
|
a.hasFills = d.hasFills;
|
|
a.hasLines = d.hasLines;
|
|
return a;
|
|
};
|
|
b.prototype.moveTo = function(d, a) {
|
|
this.ensurePathCapacities(1, 2);
|
|
this.commands[this.commandsPosition++] = 9;
|
|
this.coordinates[this.coordinatesPosition++] = d;
|
|
this.coordinates[this.coordinatesPosition++] = a;
|
|
};
|
|
b.prototype.lineTo = function(d, a) {
|
|
this.ensurePathCapacities(1, 2);
|
|
this.commands[this.commandsPosition++] = 10;
|
|
this.coordinates[this.coordinatesPosition++] = d;
|
|
this.coordinates[this.coordinatesPosition++] = a;
|
|
};
|
|
b.prototype.curveTo = function(d, a, c, b) {
|
|
this.ensurePathCapacities(1, 4);
|
|
this.commands[this.commandsPosition++] = 11;
|
|
this.coordinates[this.coordinatesPosition++] = d;
|
|
this.coordinates[this.coordinatesPosition++] = a;
|
|
this.coordinates[this.coordinatesPosition++] = c;
|
|
this.coordinates[this.coordinatesPosition++] = b;
|
|
};
|
|
b.prototype.cubicCurveTo = function(d, a, c, b, p, e) {
|
|
this.ensurePathCapacities(1, 6);
|
|
this.commands[this.commandsPosition++] = 12;
|
|
this.coordinates[this.coordinatesPosition++] = d;
|
|
this.coordinates[this.coordinatesPosition++] = a;
|
|
this.coordinates[this.coordinatesPosition++] = c;
|
|
this.coordinates[this.coordinatesPosition++] = b;
|
|
this.coordinates[this.coordinatesPosition++] = p;
|
|
this.coordinates[this.coordinatesPosition++] = e;
|
|
};
|
|
b.prototype.beginFill = function(d) {
|
|
this.ensurePathCapacities(1, 0);
|
|
this.commands[this.commandsPosition++] = 1;
|
|
this.styles.writeUnsignedInt(d);
|
|
this.hasFills = !0;
|
|
};
|
|
b.prototype.endFill = function() {
|
|
this.ensurePathCapacities(1, 0);
|
|
this.commands[this.commandsPosition++] = 4;
|
|
};
|
|
b.prototype.endLine = function() {
|
|
this.ensurePathCapacities(1, 0);
|
|
this.commands[this.commandsPosition++] = 8;
|
|
};
|
|
b.prototype.lineStyle = function(d, a, c, b, p, e, q) {
|
|
f(d === (d | 0), 0 <= d && 5100 >= d);
|
|
this.ensurePathCapacities(2, 0);
|
|
this.commands[this.commandsPosition++] = 5;
|
|
this.coordinates[this.coordinatesPosition++] = d;
|
|
d = this.styles;
|
|
d.writeUnsignedInt(a);
|
|
d.writeBoolean(c);
|
|
d.writeUnsignedByte(b);
|
|
d.writeUnsignedByte(p);
|
|
d.writeUnsignedByte(e);
|
|
d.writeUnsignedByte(q);
|
|
this.hasLines = !0;
|
|
};
|
|
b.prototype.beginBitmap = function(d, a, c, b, p) {
|
|
f(3 === d || 7 === d);
|
|
this.ensurePathCapacities(1, 0);
|
|
this.commands[this.commandsPosition++] = d;
|
|
d = this.styles;
|
|
d.writeUnsignedInt(a);
|
|
this._writeStyleMatrix(c);
|
|
d.writeBoolean(b);
|
|
d.writeBoolean(p);
|
|
this.hasFills = !0;
|
|
};
|
|
b.prototype.beginGradient = function(d, a, c, b, p, e, q, l) {
|
|
f(2 === d || 6 === d);
|
|
this.ensurePathCapacities(1, 0);
|
|
this.commands[this.commandsPosition++] = d;
|
|
d = this.styles;
|
|
d.writeUnsignedByte(b);
|
|
f(l === (l | 0));
|
|
d.writeShort(l);
|
|
this._writeStyleMatrix(p);
|
|
b = a.length;
|
|
d.writeByte(b);
|
|
for (p = 0;p < b;p++) {
|
|
d.writeUnsignedByte(c[p]), d.writeUnsignedInt(a[p]);
|
|
}
|
|
d.writeUnsignedByte(e);
|
|
d.writeUnsignedByte(q);
|
|
this.hasFills = !0;
|
|
};
|
|
b.prototype.writeCommandAndCoordinates = function(d, a, c) {
|
|
this.ensurePathCapacities(1, 2);
|
|
this.commands[this.commandsPosition++] = d;
|
|
this.coordinates[this.coordinatesPosition++] = a;
|
|
this.coordinates[this.coordinatesPosition++] = c;
|
|
};
|
|
b.prototype.writeCoordinates = function(d, a) {
|
|
this.ensurePathCapacities(0, 2);
|
|
this.coordinates[this.coordinatesPosition++] = d;
|
|
this.coordinates[this.coordinatesPosition++] = a;
|
|
};
|
|
b.prototype.writeMorphCoordinates = function(d, a) {
|
|
this.morphCoordinates = g(this.morphCoordinates, this.coordinatesPosition);
|
|
this.morphCoordinates[this.coordinatesPosition - 2] = d;
|
|
this.morphCoordinates[this.coordinatesPosition - 1] = a;
|
|
};
|
|
b.prototype.clear = function() {
|
|
this.commandsPosition = this.coordinatesPosition = 0;
|
|
this.commands = new Uint8Array(32);
|
|
this.coordinates = new Int32Array(128);
|
|
this.styles = new k(16);
|
|
this.styles.endian = "auto";
|
|
this.hasFills = this.hasLines = !1;
|
|
};
|
|
b.prototype.isEmpty = function() {
|
|
return 0 === this.commandsPosition;
|
|
};
|
|
b.prototype.clone = function() {
|
|
var d = new b(!1);
|
|
d.commands = new Uint8Array(this.commands);
|
|
d.commandsPosition = this.commandsPosition;
|
|
d.coordinates = new Int32Array(this.coordinates);
|
|
d.coordinatesPosition = this.coordinatesPosition;
|
|
d.styles = new k(this.styles.length);
|
|
d.styles.writeRawBytes(this.styles.bytes);
|
|
d.hasFills = this.hasFills;
|
|
d.hasLines = this.hasLines;
|
|
return d;
|
|
};
|
|
b.prototype.toPlainObject = function() {
|
|
return new t(this.commands, this.commandsPosition, this.coordinates, this.coordinatesPosition, this.morphCoordinates, this.styles.buffer, this.styles.length, this.hasFills, this.hasLines);
|
|
};
|
|
Object.defineProperty(b.prototype, "buffers", {get:function() {
|
|
var d = [this.commands.buffer, this.coordinates.buffer, this.styles.buffer];
|
|
this.morphCoordinates && d.push(this.morphCoordinates.buffer);
|
|
return d;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype._writeStyleMatrix = function(d) {
|
|
var a = this.styles;
|
|
a.writeFloat(d.a);
|
|
a.writeFloat(d.b);
|
|
a.writeFloat(d.c);
|
|
a.writeFloat(d.d);
|
|
a.writeFloat(d.tx);
|
|
a.writeFloat(d.ty);
|
|
};
|
|
b.prototype.ensurePathCapacities = function(d, a) {
|
|
this.commands = g(this.commands, this.commandsPosition + d);
|
|
this.coordinates = g(this.coordinates, this.coordinatesPosition + a);
|
|
};
|
|
return b;
|
|
}();
|
|
b.ShapeData = s;
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
b[b.CODE_END = 0] = "CODE_END";
|
|
b[b.CODE_SHOW_FRAME = 1] = "CODE_SHOW_FRAME";
|
|
b[b.CODE_DEFINE_SHAPE = 2] = "CODE_DEFINE_SHAPE";
|
|
b[b.CODE_FREE_CHARACTER = 3] = "CODE_FREE_CHARACTER";
|
|
b[b.CODE_PLACE_OBJECT = 4] = "CODE_PLACE_OBJECT";
|
|
b[b.CODE_REMOVE_OBJECT = 5] = "CODE_REMOVE_OBJECT";
|
|
b[b.CODE_DEFINE_BITS = 6] = "CODE_DEFINE_BITS";
|
|
b[b.CODE_DEFINE_BUTTON = 7] = "CODE_DEFINE_BUTTON";
|
|
b[b.CODE_JPEG_TABLES = 8] = "CODE_JPEG_TABLES";
|
|
b[b.CODE_SET_BACKGROUND_COLOR = 9] = "CODE_SET_BACKGROUND_COLOR";
|
|
b[b.CODE_DEFINE_FONT = 10] = "CODE_DEFINE_FONT";
|
|
b[b.CODE_DEFINE_TEXT = 11] = "CODE_DEFINE_TEXT";
|
|
b[b.CODE_DO_ACTION = 12] = "CODE_DO_ACTION";
|
|
b[b.CODE_DEFINE_FONT_INFO = 13] = "CODE_DEFINE_FONT_INFO";
|
|
b[b.CODE_DEFINE_SOUND = 14] = "CODE_DEFINE_SOUND";
|
|
b[b.CODE_START_SOUND = 15] = "CODE_START_SOUND";
|
|
b[b.CODE_STOP_SOUND = 16] = "CODE_STOP_SOUND";
|
|
b[b.CODE_DEFINE_BUTTON_SOUND = 17] = "CODE_DEFINE_BUTTON_SOUND";
|
|
b[b.CODE_SOUND_STREAM_HEAD = 18] = "CODE_SOUND_STREAM_HEAD";
|
|
b[b.CODE_SOUND_STREAM_BLOCK = 19] = "CODE_SOUND_STREAM_BLOCK";
|
|
b[b.CODE_DEFINE_BITS_LOSSLESS = 20] = "CODE_DEFINE_BITS_LOSSLESS";
|
|
b[b.CODE_DEFINE_BITS_JPEG2 = 21] = "CODE_DEFINE_BITS_JPEG2";
|
|
b[b.CODE_DEFINE_SHAPE2 = 22] = "CODE_DEFINE_SHAPE2";
|
|
b[b.CODE_DEFINE_BUTTON_CXFORM = 23] = "CODE_DEFINE_BUTTON_CXFORM";
|
|
b[b.CODE_PROTECT = 24] = "CODE_PROTECT";
|
|
b[b.CODE_PATHS_ARE_POSTSCRIPT = 25] = "CODE_PATHS_ARE_POSTSCRIPT";
|
|
b[b.CODE_PLACE_OBJECT2 = 26] = "CODE_PLACE_OBJECT2";
|
|
b[b.CODE_REMOVE_OBJECT2 = 28] = "CODE_REMOVE_OBJECT2";
|
|
b[b.CODE_SYNC_FRAME = 29] = "CODE_SYNC_FRAME";
|
|
b[b.CODE_FREE_ALL = 31] = "CODE_FREE_ALL";
|
|
b[b.CODE_DEFINE_SHAPE3 = 32] = "CODE_DEFINE_SHAPE3";
|
|
b[b.CODE_DEFINE_TEXT2 = 33] = "CODE_DEFINE_TEXT2";
|
|
b[b.CODE_DEFINE_BUTTON2 = 34] = "CODE_DEFINE_BUTTON2";
|
|
b[b.CODE_DEFINE_BITS_JPEG3 = 35] = "CODE_DEFINE_BITS_JPEG3";
|
|
b[b.CODE_DEFINE_BITS_LOSSLESS2 = 36] = "CODE_DEFINE_BITS_LOSSLESS2";
|
|
b[b.CODE_DEFINE_EDIT_TEXT = 37] = "CODE_DEFINE_EDIT_TEXT";
|
|
b[b.CODE_DEFINE_VIDEO = 38] = "CODE_DEFINE_VIDEO";
|
|
b[b.CODE_DEFINE_SPRITE = 39] = "CODE_DEFINE_SPRITE";
|
|
b[b.CODE_NAME_CHARACTER = 40] = "CODE_NAME_CHARACTER";
|
|
b[b.CODE_PRODUCT_INFO = 41] = "CODE_PRODUCT_INFO";
|
|
b[b.CODE_DEFINE_TEXT_FORMAT = 42] = "CODE_DEFINE_TEXT_FORMAT";
|
|
b[b.CODE_FRAME_LABEL = 43] = "CODE_FRAME_LABEL";
|
|
b[b.CODE_DEFINE_BEHAVIOUR = 44] = "CODE_DEFINE_BEHAVIOUR";
|
|
b[b.CODE_SOUND_STREAM_HEAD2 = 45] = "CODE_SOUND_STREAM_HEAD2";
|
|
b[b.CODE_DEFINE_MORPH_SHAPE = 46] = "CODE_DEFINE_MORPH_SHAPE";
|
|
b[b.CODE_FRAME_TAG = 47] = "CODE_FRAME_TAG";
|
|
b[b.CODE_DEFINE_FONT2 = 48] = "CODE_DEFINE_FONT2";
|
|
b[b.CODE_GEN_COMMAND = 49] = "CODE_GEN_COMMAND";
|
|
b[b.CODE_DEFINE_COMMAND_OBJ = 50] = "CODE_DEFINE_COMMAND_OBJ";
|
|
b[b.CODE_CHARACTER_SET = 51] = "CODE_CHARACTER_SET";
|
|
b[b.CODE_FONT_REF = 52] = "CODE_FONT_REF";
|
|
b[b.CODE_DEFINE_FUNCTION = 53] = "CODE_DEFINE_FUNCTION";
|
|
b[b.CODE_PLACE_FUNCTION = 54] = "CODE_PLACE_FUNCTION";
|
|
b[b.CODE_GEN_TAG_OBJECTS = 55] = "CODE_GEN_TAG_OBJECTS";
|
|
b[b.CODE_EXPORT_ASSETS = 56] = "CODE_EXPORT_ASSETS";
|
|
b[b.CODE_IMPORT_ASSETS = 57] = "CODE_IMPORT_ASSETS";
|
|
b[b.CODE_ENABLE_DEBUGGER = 58] = "CODE_ENABLE_DEBUGGER";
|
|
b[b.CODE_DO_INIT_ACTION = 59] = "CODE_DO_INIT_ACTION";
|
|
b[b.CODE_DEFINE_VIDEO_STREAM = 60] = "CODE_DEFINE_VIDEO_STREAM";
|
|
b[b.CODE_VIDEO_FRAME = 61] = "CODE_VIDEO_FRAME";
|
|
b[b.CODE_DEFINE_FONT_INFO2 = 62] = "CODE_DEFINE_FONT_INFO2";
|
|
b[b.CODE_DEBUG_ID = 63] = "CODE_DEBUG_ID";
|
|
b[b.CODE_ENABLE_DEBUGGER2 = 64] = "CODE_ENABLE_DEBUGGER2";
|
|
b[b.CODE_SCRIPT_LIMITS = 65] = "CODE_SCRIPT_LIMITS";
|
|
b[b.CODE_SET_TAB_INDEX = 66] = "CODE_SET_TAB_INDEX";
|
|
b[b.CODE_FILE_ATTRIBUTES = 69] = "CODE_FILE_ATTRIBUTES";
|
|
b[b.CODE_PLACE_OBJECT3 = 70] = "CODE_PLACE_OBJECT3";
|
|
b[b.CODE_IMPORT_ASSETS2 = 71] = "CODE_IMPORT_ASSETS2";
|
|
b[b.CODE_DO_ABC_ = 72] = "CODE_DO_ABC_";
|
|
b[b.CODE_DEFINE_FONT_ALIGN_ZONES = 73] = "CODE_DEFINE_FONT_ALIGN_ZONES";
|
|
b[b.CODE_CSM_TEXT_SETTINGS = 74] = "CODE_CSM_TEXT_SETTINGS";
|
|
b[b.CODE_DEFINE_FONT3 = 75] = "CODE_DEFINE_FONT3";
|
|
b[b.CODE_SYMBOL_CLASS = 76] = "CODE_SYMBOL_CLASS";
|
|
b[b.CODE_METADATA = 77] = "CODE_METADATA";
|
|
b[b.CODE_DEFINE_SCALING_GRID = 78] = "CODE_DEFINE_SCALING_GRID";
|
|
b[b.CODE_DO_ABC = 82] = "CODE_DO_ABC";
|
|
b[b.CODE_DEFINE_SHAPE4 = 83] = "CODE_DEFINE_SHAPE4";
|
|
b[b.CODE_DEFINE_MORPH_SHAPE2 = 84] = "CODE_DEFINE_MORPH_SHAPE2";
|
|
b[b.CODE_DEFINE_SCENE_AND_FRAME_LABEL_DATA = 86] = "CODE_DEFINE_SCENE_AND_FRAME_LABEL_DATA";
|
|
b[b.CODE_DEFINE_BINARY_DATA = 87] = "CODE_DEFINE_BINARY_DATA";
|
|
b[b.CODE_DEFINE_FONT_NAME = 88] = "CODE_DEFINE_FONT_NAME";
|
|
b[b.CODE_START_SOUND2 = 89] = "CODE_START_SOUND2";
|
|
b[b.CODE_DEFINE_BITS_JPEG4 = 90] = "CODE_DEFINE_BITS_JPEG4";
|
|
b[b.CODE_DEFINE_FONT4 = 91] = "CODE_DEFINE_FONT4";
|
|
})(b.SwfTag || (b.SwfTag = {}));
|
|
(function(b) {
|
|
b[b.Reserved = 2048] = "Reserved";
|
|
b[b.OpaqueBackground = 1024] = "OpaqueBackground";
|
|
b[b.HasVisible = 512] = "HasVisible";
|
|
b[b.HasImage = 256] = "HasImage";
|
|
b[b.HasClassName = 2048] = "HasClassName";
|
|
b[b.HasCacheAsBitmap = 1024] = "HasCacheAsBitmap";
|
|
b[b.HasBlendMode = 512] = "HasBlendMode";
|
|
b[b.HasFilterList = 256] = "HasFilterList";
|
|
b[b.HasClipActions = 128] = "HasClipActions";
|
|
b[b.HasClipDepth = 64] = "HasClipDepth";
|
|
b[b.HasName = 32] = "HasName";
|
|
b[b.HasRatio = 16] = "HasRatio";
|
|
b[b.HasColorTransform = 8] = "HasColorTransform";
|
|
b[b.HasMatrix = 4] = "HasMatrix";
|
|
b[b.HasCharacter = 2] = "HasCharacter";
|
|
b[b.Move = 1] = "Move";
|
|
})(b.PlaceObjectFlags || (b.PlaceObjectFlags = {}));
|
|
})(b.Parser || (b.Parser = {}));
|
|
})(b.SWF || (b.SWF = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
var k = b.Debug.unexpected, g = function() {
|
|
function b(g, f, m, d) {
|
|
this.url = g;
|
|
this.method = f;
|
|
this.mimeType = m;
|
|
this.data = d;
|
|
}
|
|
b.prototype.readAll = function(b) {
|
|
var g = this.url, m = new XMLHttpRequest({mozSystem:!0});
|
|
m.open(this.method || "GET", this.url, !0);
|
|
m.responseType = "arraybuffer";
|
|
m.onreadystatechange = function(d) {
|
|
4 === m.readyState && (200 !== m.status && 0 !== m.status || null === m.response ? (k("Path: " + g + " not found."), b(null, m.statusText)) : b(m.response));
|
|
};
|
|
this.mimeType && m.setRequestHeader("Content-Type", this.mimeType);
|
|
m.send(this.data || null);
|
|
};
|
|
b.prototype.readAsync = function(b, g, m, d, a) {
|
|
var c = new XMLHttpRequest({mozSystem:!0}), n = this.url, p = 0, e = 0;
|
|
c.open(this.method || "GET", n, !0);
|
|
c.responseType = "moz-chunked-arraybuffer";
|
|
var q = "moz-chunked-arraybuffer" !== c.responseType;
|
|
q && (c.responseType = "arraybuffer");
|
|
c.onprogress = function(a) {
|
|
q || (p = a.loaded, e = a.total, b(new Uint8Array(c.response), {loaded:p, total:e}));
|
|
};
|
|
c.onreadystatechange = function(l) {
|
|
2 === c.readyState && a && a(n, c.status, c.getAllResponseHeaders());
|
|
4 === c.readyState && (200 !== c.status && 0 !== c.status || null === c.response && (0 === e || p !== e) ? g(c.statusText) : (q && (l = c.response, b(new Uint8Array(l), {loaded:0, total:l.byteLength})), d && d()));
|
|
};
|
|
this.mimeType && c.setRequestHeader("Content-Type", this.mimeType);
|
|
c.send(this.data || null);
|
|
m && m();
|
|
};
|
|
return b;
|
|
}();
|
|
b.BinaryFileReader = g;
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
b[b.Objects = 0] = "Objects";
|
|
b[b.References = 1] = "References";
|
|
})(b.RemotingPhase || (b.RemotingPhase = {}));
|
|
(function(b) {
|
|
b[b.HasMatrix = 1] = "HasMatrix";
|
|
b[b.HasBounds = 2] = "HasBounds";
|
|
b[b.HasChildren = 4] = "HasChildren";
|
|
b[b.HasColorTransform = 8] = "HasColorTransform";
|
|
b[b.HasClipRect = 16] = "HasClipRect";
|
|
b[b.HasMiscellaneousProperties = 32] = "HasMiscellaneousProperties";
|
|
b[b.HasMask = 64] = "HasMask";
|
|
b[b.HasClip = 128] = "HasClip";
|
|
})(b.MessageBits || (b.MessageBits = {}));
|
|
(function(b) {
|
|
b[b.None = 0] = "None";
|
|
b[b.Asset = 134217728] = "Asset";
|
|
})(b.IDMask || (b.IDMask = {}));
|
|
(function(b) {
|
|
b[b.EOF = 0] = "EOF";
|
|
b[b.UpdateFrame = 100] = "UpdateFrame";
|
|
b[b.UpdateGraphics = 101] = "UpdateGraphics";
|
|
b[b.UpdateBitmapData = 102] = "UpdateBitmapData";
|
|
b[b.UpdateTextContent = 103] = "UpdateTextContent";
|
|
b[b.UpdateStage = 104] = "UpdateStage";
|
|
b[b.UpdateNetStream = 105] = "UpdateNetStream";
|
|
b[b.RequestBitmapData = 106] = "RequestBitmapData";
|
|
b[b.DecodeImage = 107] = "DecodeImage";
|
|
b[b.DecodeImageResponse = 108] = "DecodeImageResponse";
|
|
b[b.RegisterFont = 200] = "RegisterFont";
|
|
b[b.DrawToBitmap = 201] = "DrawToBitmap";
|
|
b[b.MouseEvent = 300] = "MouseEvent";
|
|
b[b.KeyboardEvent = 301] = "KeyboardEvent";
|
|
b[b.FocusEvent = 302] = "FocusEvent";
|
|
})(b.MessageTag || (b.MessageTag = {}));
|
|
(function(b) {
|
|
b[b.Identity = 0] = "Identity";
|
|
b[b.AlphaMultiplierOnly = 1] = "AlphaMultiplierOnly";
|
|
b[b.All = 2] = "All";
|
|
})(b.ColorTransformEncoding || (b.ColorTransformEncoding = {}));
|
|
b.MouseEventNames = ["click", "dblclick", "mousedown", "mousemove", "mouseup"];
|
|
b.KeyboardEventNames = ["keydown", "keypress", "keyup"];
|
|
(function(b) {
|
|
b[b.CtrlKey = 1] = "CtrlKey";
|
|
b[b.AltKey = 2] = "AltKey";
|
|
b[b.ShiftKey = 4] = "ShiftKey";
|
|
})(b.KeyboardEventFlags || (b.KeyboardEventFlags = {}));
|
|
(function(b) {
|
|
b[b.DocumentHidden = 0] = "DocumentHidden";
|
|
b[b.DocumentVisible = 1] = "DocumentVisible";
|
|
b[b.WindowBlur = 2] = "WindowBlur";
|
|
b[b.WindowFocus = 3] = "WindowFocus";
|
|
})(b.FocusEventType || (b.FocusEventType = {}));
|
|
})(b.Remoting || (b.Remoting = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
var f = function() {
|
|
function b() {
|
|
}
|
|
b.toRGBA = function(b, d, a, c) {
|
|
"undefined" === typeof c && (c = 1);
|
|
return "rgba(" + b + "," + d + "," + a + "," + c + ")";
|
|
};
|
|
return b;
|
|
}();
|
|
b.UI = f;
|
|
var k = function() {
|
|
function b() {
|
|
}
|
|
b.prototype.tabToolbar = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(37, 44, 51, b);
|
|
};
|
|
b.prototype.toolbars = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(52, 60, 69, b);
|
|
};
|
|
b.prototype.selectionBackground = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(29, 79, 115, b);
|
|
};
|
|
b.prototype.selectionText = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(245, 247, 250, b);
|
|
};
|
|
b.prototype.splitters = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(0, 0, 0, b);
|
|
};
|
|
b.prototype.bodyBackground = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(17, 19, 21, b);
|
|
};
|
|
b.prototype.sidebarBackground = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(24, 29, 32, b);
|
|
};
|
|
b.prototype.attentionBackground = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(161, 134, 80, b);
|
|
};
|
|
b.prototype.bodyText = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(143, 161, 178, b);
|
|
};
|
|
b.prototype.foregroundTextGrey = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(182, 186, 191, b);
|
|
};
|
|
b.prototype.contentTextHighContrast = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(169, 186, 203, b);
|
|
};
|
|
b.prototype.contentTextGrey = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(143, 161, 178, b);
|
|
};
|
|
b.prototype.contentTextDarkGrey = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(95, 115, 135, b);
|
|
};
|
|
b.prototype.blueHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(70, 175, 227, b);
|
|
};
|
|
b.prototype.purpleHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(107, 122, 187, b);
|
|
};
|
|
b.prototype.pinkHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(223, 128, 255, b);
|
|
};
|
|
b.prototype.redHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(235, 83, 104, b);
|
|
};
|
|
b.prototype.orangeHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(217, 102, 41, b);
|
|
};
|
|
b.prototype.lightOrangeHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(217, 155, 40, b);
|
|
};
|
|
b.prototype.greenHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(112, 191, 83, b);
|
|
};
|
|
b.prototype.blueGreyHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(94, 136, 176, b);
|
|
};
|
|
return b;
|
|
}();
|
|
b.UIThemeDark = k;
|
|
k = function() {
|
|
function b() {
|
|
}
|
|
b.prototype.tabToolbar = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(235, 236, 237, b);
|
|
};
|
|
b.prototype.toolbars = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(240, 241, 242, b);
|
|
};
|
|
b.prototype.selectionBackground = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(76, 158, 217, b);
|
|
};
|
|
b.prototype.selectionText = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(245, 247, 250, b);
|
|
};
|
|
b.prototype.splitters = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(170, 170, 170, b);
|
|
};
|
|
b.prototype.bodyBackground = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(252, 252, 252, b);
|
|
};
|
|
b.prototype.sidebarBackground = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(247, 247, 247, b);
|
|
};
|
|
b.prototype.attentionBackground = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(161, 134, 80, b);
|
|
};
|
|
b.prototype.bodyText = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(24, 25, 26, b);
|
|
};
|
|
b.prototype.foregroundTextGrey = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(88, 89, 89, b);
|
|
};
|
|
b.prototype.contentTextHighContrast = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(41, 46, 51, b);
|
|
};
|
|
b.prototype.contentTextGrey = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(143, 161, 178, b);
|
|
};
|
|
b.prototype.contentTextDarkGrey = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(102, 115, 128, b);
|
|
};
|
|
b.prototype.blueHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(0, 136, 204, b);
|
|
};
|
|
b.prototype.purpleHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(91, 95, 255, b);
|
|
};
|
|
b.prototype.pinkHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(184, 46, 229, b);
|
|
};
|
|
b.prototype.redHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(237, 38, 85, b);
|
|
};
|
|
b.prototype.orangeHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(241, 60, 0, b);
|
|
};
|
|
b.prototype.lightOrangeHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(217, 126, 0, b);
|
|
};
|
|
b.prototype.greenHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(44, 187, 15, b);
|
|
};
|
|
b.prototype.blueGreyHighlight = function(b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
return f.toRGBA(95, 136, 176, b);
|
|
};
|
|
return b;
|
|
}();
|
|
b.UIThemeLight = k;
|
|
})(b.Theme || (b.Theme = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
var f = function() {
|
|
function b(f) {
|
|
this._buffers = f || [];
|
|
this._snapshots = [];
|
|
this._maxDepth = 0;
|
|
}
|
|
b.prototype.addBuffer = function(b) {
|
|
this._buffers.push(b);
|
|
};
|
|
b.prototype.getSnapshotAt = function(b) {
|
|
return this._snapshots[b];
|
|
};
|
|
Object.defineProperty(b.prototype, "hasSnapshots", {get:function() {
|
|
return 0 < this.snapshotCount;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "snapshotCount", {get:function() {
|
|
return this._snapshots.length;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "startTime", {get:function() {
|
|
return this._startTime;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "endTime", {get:function() {
|
|
return this._endTime;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "totalTime", {get:function() {
|
|
return this.endTime - this.startTime;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "windowStart", {get:function() {
|
|
return this._windowStart;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "windowEnd", {get:function() {
|
|
return this._windowEnd;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "windowLength", {get:function() {
|
|
return this.windowEnd - this.windowStart;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "maxDepth", {get:function() {
|
|
return this._maxDepth;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.forEachSnapshot = function(b) {
|
|
for (var m = 0, d = this.snapshotCount;m < d;m++) {
|
|
b(this._snapshots[m], m);
|
|
}
|
|
};
|
|
b.prototype.createSnapshots = function() {
|
|
var b = Number.MAX_VALUE, m = Number.MIN_VALUE, d = 0;
|
|
for (this._snapshots = [];0 < this._buffers.length;) {
|
|
var a = this._buffers.shift().createSnapshot();
|
|
a && (b > a.startTime && (b = a.startTime), m < a.endTime && (m = a.endTime), d < a.maxDepth && (d = a.maxDepth), this._snapshots.push(a));
|
|
}
|
|
this._startTime = b;
|
|
this._endTime = m;
|
|
this._windowStart = b;
|
|
this._windowEnd = m;
|
|
this._maxDepth = d;
|
|
};
|
|
b.prototype.setWindow = function(b, m) {
|
|
if (b > m) {
|
|
var d = b;
|
|
b = m;
|
|
m = d;
|
|
}
|
|
d = Math.min(m - b, this.totalTime);
|
|
b < this._startTime ? (b = this._startTime, m = this._startTime + d) : m > this._endTime && (b = this._endTime - d, m = this._endTime);
|
|
this._windowStart = b;
|
|
this._windowEnd = m;
|
|
};
|
|
b.prototype.moveWindowTo = function(b) {
|
|
this.setWindow(b - this.windowLength / 2, b + this.windowLength / 2);
|
|
};
|
|
return b;
|
|
}();
|
|
b.Profile = f;
|
|
})(b.Profiler || (b.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var __extends = this.__extends || function(b, k) {
|
|
function g() {
|
|
this.constructor = b;
|
|
}
|
|
for (var f in k) {
|
|
k.hasOwnProperty(f) && (b[f] = k[f]);
|
|
}
|
|
g.prototype = k.prototype;
|
|
b.prototype = new g;
|
|
};
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
var f = function() {
|
|
return function(b) {
|
|
this.kind = b;
|
|
this.totalTime = this.selfTime = this.count = 0;
|
|
};
|
|
}();
|
|
b.TimelineFrameStatistics = f;
|
|
var k = function() {
|
|
function b(m, d, a, c, n, p) {
|
|
this.parent = m;
|
|
this.kind = d;
|
|
this.startData = a;
|
|
this.endData = c;
|
|
this.startTime = n;
|
|
this.endTime = p;
|
|
this.maxDepth = 0;
|
|
}
|
|
Object.defineProperty(b.prototype, "totalTime", {get:function() {
|
|
return this.endTime - this.startTime;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "selfTime", {get:function() {
|
|
var b = this.totalTime;
|
|
if (this.children) {
|
|
for (var d = 0, a = this.children.length;d < a;d++) {
|
|
var c = this.children[d], b = b - (c.endTime - c.startTime)
|
|
}
|
|
}
|
|
return b;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.getChildIndex = function(b) {
|
|
for (var d = this.children, a = 0;a < d.length;a++) {
|
|
if (d[a].endTime > b) {
|
|
return a;
|
|
}
|
|
}
|
|
return 0;
|
|
};
|
|
b.prototype.getChildRange = function(b, d) {
|
|
if (this.children && b <= this.endTime && d >= this.startTime && d >= b) {
|
|
var a = this._getNearestChild(b), c = this._getNearestChildReverse(d);
|
|
if (a <= c) {
|
|
return b = this.children[a].startTime, d = this.children[c].endTime, {startIndex:a, endIndex:c, startTime:b, endTime:d, totalTime:d - b};
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
b.prototype._getNearestChild = function(b) {
|
|
var d = this.children;
|
|
if (d && d.length) {
|
|
if (b <= d[0].endTime) {
|
|
return 0;
|
|
}
|
|
for (var a, c = 0, n = d.length - 1;n > c;) {
|
|
a = (c + n) / 2 | 0;
|
|
var p = d[a];
|
|
if (b >= p.startTime && b <= p.endTime) {
|
|
return a;
|
|
}
|
|
b > p.endTime ? c = a + 1 : n = a;
|
|
}
|
|
return Math.ceil((c + n) / 2);
|
|
}
|
|
return 0;
|
|
};
|
|
b.prototype._getNearestChildReverse = function(b) {
|
|
var d = this.children;
|
|
if (d && d.length) {
|
|
var a = d.length - 1;
|
|
if (b >= d[a].startTime) {
|
|
return a;
|
|
}
|
|
for (var c, n = 0;a > n;) {
|
|
c = Math.ceil((n + a) / 2);
|
|
var p = d[c];
|
|
if (b >= p.startTime && b <= p.endTime) {
|
|
return c;
|
|
}
|
|
b > p.endTime ? n = c : a = c - 1;
|
|
}
|
|
return(n + a) / 2 | 0;
|
|
}
|
|
return 0;
|
|
};
|
|
b.prototype.query = function(b) {
|
|
if (b < this.startTime || b > this.endTime) {
|
|
return null;
|
|
}
|
|
var d = this.children;
|
|
if (d && 0 < d.length) {
|
|
for (var a, c = 0, n = d.length - 1;n > c;) {
|
|
var p = (c + n) / 2 | 0;
|
|
a = d[p];
|
|
if (b >= a.startTime && b <= a.endTime) {
|
|
return a.query(b);
|
|
}
|
|
b > a.endTime ? c = p + 1 : n = p;
|
|
}
|
|
a = d[n];
|
|
if (b >= a.startTime && b <= a.endTime) {
|
|
return a.query(b);
|
|
}
|
|
}
|
|
return this;
|
|
};
|
|
b.prototype.queryNext = function(b) {
|
|
for (var d = this;b > d.endTime;) {
|
|
if (d.parent) {
|
|
d = d.parent;
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
return d.query(b);
|
|
};
|
|
b.prototype.getDepth = function() {
|
|
for (var b = 0, d = this;d;) {
|
|
b++, d = d.parent;
|
|
}
|
|
return b;
|
|
};
|
|
b.prototype.calculateStatistics = function() {
|
|
function b(a) {
|
|
if (a.kind) {
|
|
var c = d[a.kind.id] || (d[a.kind.id] = new f(a.kind));
|
|
c.count++;
|
|
c.selfTime += a.selfTime;
|
|
c.totalTime += a.totalTime;
|
|
}
|
|
a.children && a.children.forEach(b);
|
|
}
|
|
var d = this.statistics = [];
|
|
b(this);
|
|
};
|
|
return b;
|
|
}();
|
|
b.TimelineFrame = k;
|
|
k = function(b) {
|
|
function m(d) {
|
|
b.call(this, null, null, null, null, NaN, NaN);
|
|
this.name = d;
|
|
}
|
|
__extends(m, b);
|
|
return m;
|
|
}(k);
|
|
b.TimelineBufferSnapshot = k;
|
|
})(b.Profiler || (b.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.ObjectUtilities.createEmptyObject, k = function() {
|
|
function s(m, d) {
|
|
"undefined" === typeof m && (m = "");
|
|
this.name = m || "";
|
|
this._startTime = b.isNullOrUndefined(d) ? performance.now() : d;
|
|
}
|
|
s.prototype.getKind = function(b) {
|
|
return this._kinds[b];
|
|
};
|
|
Object.defineProperty(s.prototype, "kinds", {get:function() {
|
|
return this._kinds.concat();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(s.prototype, "depth", {get:function() {
|
|
return this._depth;
|
|
}, enumerable:!0, configurable:!0});
|
|
s.prototype._initialize = function() {
|
|
this._depth = 0;
|
|
this._stack = [];
|
|
this._data = [];
|
|
this._kinds = [];
|
|
this._kindNameMap = f();
|
|
this._marks = new b.CircularBuffer(Int32Array, 20);
|
|
this._times = new b.CircularBuffer(Float64Array, 20);
|
|
};
|
|
s.prototype._getKindId = function(b) {
|
|
var d = s.MAX_KINDID;
|
|
if (void 0 === this._kindNameMap[b]) {
|
|
if (d = this._kinds.length, d < s.MAX_KINDID) {
|
|
var a = {id:d, name:b, visible:!0};
|
|
this._kinds.push(a);
|
|
this._kindNameMap[b] = a;
|
|
} else {
|
|
d = s.MAX_KINDID;
|
|
}
|
|
} else {
|
|
d = this._kindNameMap[b].id;
|
|
}
|
|
return d;
|
|
};
|
|
s.prototype._getMark = function(m, d, a) {
|
|
var c = s.MAX_DATAID;
|
|
b.isNullOrUndefined(a) || d === s.MAX_KINDID || (c = this._data.length, c < s.MAX_DATAID ? this._data.push(a) : c = s.MAX_DATAID);
|
|
return m | c << 16 | d;
|
|
};
|
|
s.prototype.enter = function(m, d, a) {
|
|
a = (b.isNullOrUndefined(a) ? performance.now() : a) - this._startTime;
|
|
this._marks || this._initialize();
|
|
this._depth++;
|
|
m = this._getKindId(m);
|
|
this._marks.write(this._getMark(s.ENTER, m, d));
|
|
this._times.write(a);
|
|
this._stack.push(m);
|
|
};
|
|
s.prototype.leave = function(m, d, a) {
|
|
a = (b.isNullOrUndefined(a) ? performance.now() : a) - this._startTime;
|
|
var c = this._stack.pop();
|
|
m && (c = this._getKindId(m));
|
|
this._marks.write(this._getMark(s.LEAVE, c, d));
|
|
this._times.write(a);
|
|
this._depth--;
|
|
};
|
|
s.prototype.count = function(b, d, a) {
|
|
};
|
|
s.prototype.createSnapshot = function() {
|
|
var m;
|
|
"undefined" === typeof m && (m = Number.MAX_VALUE);
|
|
if (!this._marks) {
|
|
return null;
|
|
}
|
|
var d = this._times, a = this._kinds, c = this._data, n = new g.TimelineBufferSnapshot(this.name), p = [n], e = 0;
|
|
this._marks || this._initialize();
|
|
this._marks.forEachInReverse(function(q, l) {
|
|
var n = c[q >>> 16 & s.MAX_DATAID], w = a[q & s.MAX_KINDID];
|
|
if (b.isNullOrUndefined(w) || w.visible) {
|
|
var r = q & 2147483648, h = d.get(l), x = p.length;
|
|
if (r === s.LEAVE) {
|
|
if (1 === x && (e++, e > m)) {
|
|
return!0;
|
|
}
|
|
p.push(new g.TimelineFrame(p[x - 1], w, null, n, NaN, h));
|
|
} else {
|
|
if (r === s.ENTER) {
|
|
if (w = p.pop(), r = p[p.length - 1]) {
|
|
for (r.children ? r.children.unshift(w) : r.children = [w], r = p.length, w.depth = r, w.startData = n, w.startTime = h;w;) {
|
|
if (w.maxDepth < r) {
|
|
w.maxDepth = r, w = w.parent;
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
return!0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
n.children && n.children.length && (n.startTime = n.children[0].startTime, n.endTime = n.children[n.children.length - 1].endTime);
|
|
return n;
|
|
};
|
|
s.prototype.reset = function(m) {
|
|
this._startTime = b.isNullOrUndefined(m) ? performance.now() : m;
|
|
this._marks ? (this._depth = 0, this._data = [], this._marks.reset(), this._times.reset()) : this._initialize();
|
|
};
|
|
s.FromFirefoxProfile = function(b, d) {
|
|
for (var a = b.profile.threads[0].samples, c = new s(d, a[0].time), n = [], p, e = 0;e < a.length;e++) {
|
|
p = a[e];
|
|
var q = p.time, l = p.frames, u = 0;
|
|
for (p = Math.min(l.length, n.length);u < p && l[u].location === n[u].location;) {
|
|
u++;
|
|
}
|
|
for (var w = n.length - u, r = 0;r < w;r++) {
|
|
p = n.pop(), c.leave(p.location, null, q);
|
|
}
|
|
for (;u < l.length;) {
|
|
p = l[u++], c.enter(p.location, null, q);
|
|
}
|
|
n = l;
|
|
}
|
|
for (;p = n.pop();) {
|
|
c.leave(p.location, null, q);
|
|
}
|
|
return c;
|
|
};
|
|
s.FromChromeProfile = function(b, d) {
|
|
var a = b.timestamps, c = b.samples, n = new s(d, a[0] / 1E3), p = [], e = {}, q;
|
|
s._resolveIds(b.head, e);
|
|
for (var l = 0;l < a.length;l++) {
|
|
var u = a[l] / 1E3, w = [];
|
|
for (q = e[c[l]];q;) {
|
|
w.unshift(q), q = q.parent;
|
|
}
|
|
var r = 0;
|
|
for (q = Math.min(w.length, p.length);r < q && w[r] === p[r];) {
|
|
r++;
|
|
}
|
|
for (var h = p.length - r, x = 0;x < h;x++) {
|
|
q = p.pop(), n.leave(q.functionName, null, u);
|
|
}
|
|
for (;r < w.length;) {
|
|
q = w[r++], n.enter(q.functionName, null, u);
|
|
}
|
|
p = w;
|
|
}
|
|
for (;q = p.pop();) {
|
|
n.leave(q.functionName, null, u);
|
|
}
|
|
return n;
|
|
};
|
|
s._resolveIds = function(b, d) {
|
|
d[b.id] = b;
|
|
if (b.children) {
|
|
for (var a = 0;a < b.children.length;a++) {
|
|
b.children[a].parent = b, s._resolveIds(b.children[a], d);
|
|
}
|
|
}
|
|
};
|
|
s.ENTER = 0;
|
|
s.LEAVE = -2147483648;
|
|
s.MAX_KINDID = 65535;
|
|
s.MAX_DATAID = 32767;
|
|
return s;
|
|
}();
|
|
g.TimelineBuffer = k;
|
|
})(k.Profiler || (k.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(b) {
|
|
b[b.DARK = 0] = "DARK";
|
|
b[b.LIGHT = 1] = "LIGHT";
|
|
})(g.UIThemeType || (g.UIThemeType = {}));
|
|
var f = function() {
|
|
function f(b, m) {
|
|
"undefined" === typeof m && (m = 0);
|
|
this._container = b;
|
|
this._headers = [];
|
|
this._charts = [];
|
|
this._profiles = [];
|
|
this._activeProfile = null;
|
|
this.themeType = m;
|
|
this._tooltip = this._createTooltip();
|
|
}
|
|
f.prototype.createProfile = function(b, m) {
|
|
"undefined" === typeof m && (m = !0);
|
|
var d = new g.Profile(b);
|
|
d.createSnapshots();
|
|
this._profiles.push(d);
|
|
m && this.activateProfile(d);
|
|
return d;
|
|
};
|
|
f.prototype.activateProfile = function(b) {
|
|
this.deactivateProfile();
|
|
this._activeProfile = b;
|
|
this._createViews();
|
|
this._initializeViews();
|
|
};
|
|
f.prototype.activateProfileAt = function(b) {
|
|
this.activateProfile(this.getProfileAt(b));
|
|
};
|
|
f.prototype.deactivateProfile = function() {
|
|
this._activeProfile && (this._destroyViews(), this._activeProfile = null);
|
|
};
|
|
f.prototype.resize = function() {
|
|
this._onResize();
|
|
};
|
|
f.prototype.getProfileAt = function(b) {
|
|
return this._profiles[b];
|
|
};
|
|
Object.defineProperty(f.prototype, "activeProfile", {get:function() {
|
|
return this._activeProfile;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "profileCount", {get:function() {
|
|
return this._profiles.length;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "container", {get:function() {
|
|
return this._container;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "themeType", {get:function() {
|
|
return this._themeType;
|
|
}, set:function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
this._theme = new k.Theme.UIThemeDark;
|
|
break;
|
|
case 1:
|
|
this._theme = new k.Theme.UIThemeLight;
|
|
}
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "theme", {get:function() {
|
|
return this._theme;
|
|
}, enumerable:!0, configurable:!0});
|
|
f.prototype.getSnapshotAt = function(b) {
|
|
return this._activeProfile.getSnapshotAt(b);
|
|
};
|
|
f.prototype._createViews = function() {
|
|
if (this._activeProfile) {
|
|
var b = this;
|
|
this._overviewHeader = new g.FlameChartHeader(this, 0);
|
|
this._overview = new g.FlameChartOverview(this, 0);
|
|
this._activeProfile.forEachSnapshot(function(m, d) {
|
|
b._headers.push(new g.FlameChartHeader(b, 1));
|
|
b._charts.push(new g.FlameChart(b, m));
|
|
});
|
|
window.addEventListener("resize", this._onResize.bind(this));
|
|
}
|
|
};
|
|
f.prototype._destroyViews = function() {
|
|
if (this._activeProfile) {
|
|
this._overviewHeader.destroy();
|
|
for (this._overview.destroy();this._headers.length;) {
|
|
this._headers.pop().destroy();
|
|
}
|
|
for (;this._charts.length;) {
|
|
this._charts.pop().destroy();
|
|
}
|
|
window.removeEventListener("resize", this._onResize.bind(this));
|
|
}
|
|
};
|
|
f.prototype._initializeViews = function() {
|
|
if (this._activeProfile) {
|
|
var b = this, m = this._activeProfile.startTime, d = this._activeProfile.endTime;
|
|
this._overviewHeader.initialize(m, d);
|
|
this._overview.initialize(m, d);
|
|
this._activeProfile.forEachSnapshot(function(a, c) {
|
|
b._headers[c].initialize(m, d);
|
|
b._charts[c].initialize(m, d);
|
|
});
|
|
}
|
|
};
|
|
f.prototype._onResize = function() {
|
|
if (this._activeProfile) {
|
|
var b = this, m = this._container.offsetWidth;
|
|
this._overviewHeader.setSize(m);
|
|
this._overview.setSize(m);
|
|
this._activeProfile.forEachSnapshot(function(d, a) {
|
|
b._headers[a].setSize(m);
|
|
b._charts[a].setSize(m);
|
|
});
|
|
}
|
|
};
|
|
f.prototype._updateViews = function() {
|
|
if (this._activeProfile) {
|
|
var b = this, m = this._activeProfile.windowStart, d = this._activeProfile.windowEnd;
|
|
this._overviewHeader.setWindow(m, d);
|
|
this._overview.setWindow(m, d);
|
|
this._activeProfile.forEachSnapshot(function(a, c) {
|
|
b._headers[c].setWindow(m, d);
|
|
b._charts[c].setWindow(m, d);
|
|
});
|
|
}
|
|
};
|
|
f.prototype._drawViews = function() {
|
|
};
|
|
f.prototype._createTooltip = function() {
|
|
var b = document.createElement("div");
|
|
b.classList.add("profiler-tooltip");
|
|
b.style.display = "none";
|
|
this._container.insertBefore(b, this._container.firstChild);
|
|
return b;
|
|
};
|
|
f.prototype.setWindow = function(b, m) {
|
|
this._activeProfile.setWindow(b, m);
|
|
this._updateViews();
|
|
};
|
|
f.prototype.moveWindowTo = function(b) {
|
|
this._activeProfile.moveWindowTo(b);
|
|
this._updateViews();
|
|
};
|
|
f.prototype.showTooltip = function(b, m, d, a) {
|
|
this.removeTooltipContent();
|
|
this._tooltip.appendChild(this.createTooltipContent(b, m));
|
|
this._tooltip.style.display = "block";
|
|
var c = this._tooltip.firstChild;
|
|
m = c.clientWidth;
|
|
c = c.clientHeight;
|
|
d += d + m >= b.canvas.clientWidth - 50 ? -(m + 20) : 25;
|
|
a += b.canvas.offsetTop - c / 2;
|
|
this._tooltip.style.left = d + "px";
|
|
this._tooltip.style.top = a + "px";
|
|
};
|
|
f.prototype.hideTooltip = function() {
|
|
this._tooltip.style.display = "none";
|
|
};
|
|
f.prototype.createTooltipContent = function(b, m) {
|
|
var d = Math.round(1E5 * m.totalTime) / 1E5, a = Math.round(1E5 * m.selfTime) / 1E5, c = Math.round(1E4 * m.selfTime / m.totalTime) / 100, n = document.createElement("div"), p = document.createElement("h1");
|
|
p.textContent = m.kind.name;
|
|
n.appendChild(p);
|
|
p = document.createElement("p");
|
|
p.textContent = "Total: " + d + " ms";
|
|
n.appendChild(p);
|
|
d = document.createElement("p");
|
|
d.textContent = "Self: " + a + " ms (" + c + "%)";
|
|
n.appendChild(d);
|
|
if (a = b.getStatistics(m.kind)) {
|
|
c = document.createElement("p"), c.textContent = "Count: " + a.count, n.appendChild(c), c = Math.round(1E5 * a.totalTime) / 1E5, d = document.createElement("p"), d.textContent = "All Total: " + c + " ms", n.appendChild(d), a = Math.round(1E5 * a.selfTime) / 1E5, c = document.createElement("p"), c.textContent = "All Self: " + a + " ms", n.appendChild(c);
|
|
}
|
|
this.appendDataElements(n, m.startData);
|
|
this.appendDataElements(n, m.endData);
|
|
return n;
|
|
};
|
|
f.prototype.appendDataElements = function(f, m) {
|
|
if (!b.isNullOrUndefined(m)) {
|
|
f.appendChild(document.createElement("hr"));
|
|
var d;
|
|
if (b.isObject(m)) {
|
|
for (var a in m) {
|
|
d = document.createElement("p"), d.textContent = a + ": " + m[a], f.appendChild(d);
|
|
}
|
|
} else {
|
|
d = document.createElement("p"), d.textContent = m.toString(), f.appendChild(d);
|
|
}
|
|
}
|
|
};
|
|
f.prototype.removeTooltipContent = function() {
|
|
for (var b = this._tooltip;b.firstChild;) {
|
|
b.removeChild(b.firstChild);
|
|
}
|
|
};
|
|
return f;
|
|
}();
|
|
g.Controller = f;
|
|
})(k.Profiler || (k.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.NumberUtilities.clamp, k = function() {
|
|
function b(d) {
|
|
this.value = d;
|
|
}
|
|
b.prototype.toString = function() {
|
|
return this.value;
|
|
};
|
|
b.AUTO = new b("auto");
|
|
b.DEFAULT = new b("default");
|
|
b.NONE = new b("none");
|
|
b.HELP = new b("help");
|
|
b.POINTER = new b("pointer");
|
|
b.PROGRESS = new b("progress");
|
|
b.WAIT = new b("wait");
|
|
b.CELL = new b("cell");
|
|
b.CROSSHAIR = new b("crosshair");
|
|
b.TEXT = new b("text");
|
|
b.ALIAS = new b("alias");
|
|
b.COPY = new b("copy");
|
|
b.MOVE = new b("move");
|
|
b.NO_DROP = new b("no-drop");
|
|
b.NOT_ALLOWED = new b("not-allowed");
|
|
b.ALL_SCROLL = new b("all-scroll");
|
|
b.COL_RESIZE = new b("col-resize");
|
|
b.ROW_RESIZE = new b("row-resize");
|
|
b.N_RESIZE = new b("n-resize");
|
|
b.E_RESIZE = new b("e-resize");
|
|
b.S_RESIZE = new b("s-resize");
|
|
b.W_RESIZE = new b("w-resize");
|
|
b.NE_RESIZE = new b("ne-resize");
|
|
b.NW_RESIZE = new b("nw-resize");
|
|
b.SE_RESIZE = new b("se-resize");
|
|
b.SW_RESIZE = new b("sw-resize");
|
|
b.EW_RESIZE = new b("ew-resize");
|
|
b.NS_RESIZE = new b("ns-resize");
|
|
b.NESW_RESIZE = new b("nesw-resize");
|
|
b.NWSE_RESIZE = new b("nwse-resize");
|
|
b.ZOOM_IN = new b("zoom-in");
|
|
b.ZOOM_OUT = new b("zoom-out");
|
|
b.GRAB = new b("grab");
|
|
b.GRABBING = new b("grabbing");
|
|
return b;
|
|
}();
|
|
g.MouseCursor = k;
|
|
var s = function() {
|
|
function b(d, a) {
|
|
this._target = d;
|
|
this._eventTarget = a;
|
|
this._wheelDisabled = !1;
|
|
this._boundOnMouseDown = this._onMouseDown.bind(this);
|
|
this._boundOnMouseUp = this._onMouseUp.bind(this);
|
|
this._boundOnMouseOver = this._onMouseOver.bind(this);
|
|
this._boundOnMouseOut = this._onMouseOut.bind(this);
|
|
this._boundOnMouseMove = this._onMouseMove.bind(this);
|
|
this._boundOnMouseWheel = this._onMouseWheel.bind(this);
|
|
this._boundOnDrag = this._onDrag.bind(this);
|
|
a.addEventListener("mousedown", this._boundOnMouseDown, !1);
|
|
a.addEventListener("mouseover", this._boundOnMouseOver, !1);
|
|
a.addEventListener("mouseout", this._boundOnMouseOut, !1);
|
|
a.addEventListener("onwheel" in document ? "wheel" : "mousewheel", this._boundOnMouseWheel, !1);
|
|
}
|
|
b.prototype.destroy = function() {
|
|
var b = this._eventTarget;
|
|
b.removeEventListener("mousedown", this._boundOnMouseDown);
|
|
b.removeEventListener("mouseover", this._boundOnMouseOver);
|
|
b.removeEventListener("mouseout", this._boundOnMouseOut);
|
|
b.removeEventListener("onwheel" in document ? "wheel" : "mousewheel", this._boundOnMouseWheel);
|
|
window.removeEventListener("mousemove", this._boundOnDrag);
|
|
window.removeEventListener("mouseup", this._boundOnMouseUp);
|
|
this._killHoverCheck();
|
|
this._target = this._eventTarget = null;
|
|
};
|
|
b.prototype.updateCursor = function(d) {
|
|
if (!b._cursorOwner || b._cursorOwner === this._target) {
|
|
var a = this._eventTarget.parentElement;
|
|
b._cursor !== d && (b._cursor = d, ["", "-moz-", "-webkit-"].forEach(function(c) {
|
|
a.style.cursor = c + d;
|
|
}));
|
|
b._cursorOwner = b._cursor === k.DEFAULT ? null : this._target;
|
|
}
|
|
};
|
|
b.prototype._onMouseDown = function(b) {
|
|
this._killHoverCheck();
|
|
if (0 === b.button) {
|
|
var a = this._getTargetMousePos(b, b.target);
|
|
this._dragInfo = {start:a, current:a, delta:{x:0, y:0}, hasMoved:!1, originalTarget:b.target};
|
|
window.addEventListener("mousemove", this._boundOnDrag, !1);
|
|
window.addEventListener("mouseup", this._boundOnMouseUp, !1);
|
|
this._target.onMouseDown(a.x, a.y);
|
|
}
|
|
};
|
|
b.prototype._onDrag = function(b) {
|
|
var a = this._dragInfo;
|
|
b = this._getTargetMousePos(b, a.originalTarget);
|
|
var c = {x:b.x - a.start.x, y:b.y - a.start.y};
|
|
a.current = b;
|
|
a.delta = c;
|
|
a.hasMoved = !0;
|
|
this._target.onDrag(a.start.x, a.start.y, b.x, b.y, c.x, c.y);
|
|
};
|
|
b.prototype._onMouseUp = function(b) {
|
|
window.removeEventListener("mousemove", this._boundOnDrag);
|
|
window.removeEventListener("mouseup", this._boundOnMouseUp);
|
|
var a = this;
|
|
b = this._dragInfo;
|
|
if (b.hasMoved) {
|
|
this._target.onDragEnd(b.start.x, b.start.y, b.current.x, b.current.y, b.delta.x, b.delta.y);
|
|
} else {
|
|
this._target.onClick(b.current.x, b.current.y);
|
|
}
|
|
this._dragInfo = null;
|
|
this._wheelDisabled = !0;
|
|
setTimeout(function() {
|
|
a._wheelDisabled = !1;
|
|
}, 500);
|
|
};
|
|
b.prototype._onMouseOver = function(b) {
|
|
b.target.addEventListener("mousemove", this._boundOnMouseMove, !1);
|
|
if (!this._dragInfo) {
|
|
var a = this._getTargetMousePos(b, b.target);
|
|
this._target.onMouseOver(a.x, a.y);
|
|
this._startHoverCheck(b);
|
|
}
|
|
};
|
|
b.prototype._onMouseOut = function(b) {
|
|
b.target.removeEventListener("mousemove", this._boundOnMouseMove, !1);
|
|
if (!this._dragInfo) {
|
|
this._target.onMouseOut();
|
|
}
|
|
this._killHoverCheck();
|
|
};
|
|
b.prototype._onMouseMove = function(b) {
|
|
if (!this._dragInfo) {
|
|
var a = this._getTargetMousePos(b, b.target);
|
|
this._target.onMouseMove(a.x, a.y);
|
|
this._killHoverCheck();
|
|
this._startHoverCheck(b);
|
|
}
|
|
};
|
|
b.prototype._onMouseWheel = function(b) {
|
|
if (!(b.altKey || b.metaKey || b.ctrlKey || b.shiftKey || (b.preventDefault(), this._dragInfo || this._wheelDisabled))) {
|
|
var a = this._getTargetMousePos(b, b.target);
|
|
b = f("undefined" !== typeof b.deltaY ? b.deltaY / 16 : -b.wheelDelta / 40, -1, 1);
|
|
this._target.onMouseWheel(a.x, a.y, Math.pow(1.2, b) - 1);
|
|
}
|
|
};
|
|
b.prototype._startHoverCheck = function(d) {
|
|
this._hoverInfo = {isHovering:!1, timeoutHandle:setTimeout(this._onMouseMoveIdleHandler.bind(this), b.HOVER_TIMEOUT), pos:this._getTargetMousePos(d, d.target)};
|
|
};
|
|
b.prototype._killHoverCheck = function() {
|
|
if (this._hoverInfo) {
|
|
clearTimeout(this._hoverInfo.timeoutHandle);
|
|
if (this._hoverInfo.isHovering) {
|
|
this._target.onHoverEnd();
|
|
}
|
|
this._hoverInfo = null;
|
|
}
|
|
};
|
|
b.prototype._onMouseMoveIdleHandler = function() {
|
|
var b = this._hoverInfo;
|
|
b.isHovering = !0;
|
|
this._target.onHoverStart(b.pos.x, b.pos.y);
|
|
};
|
|
b.prototype._getTargetMousePos = function(b, a) {
|
|
var c = a.getBoundingClientRect();
|
|
return{x:b.clientX - c.left, y:b.clientY - c.top};
|
|
};
|
|
b.HOVER_TIMEOUT = 500;
|
|
b._cursor = k.DEFAULT;
|
|
return b;
|
|
}();
|
|
g.MouseController = s;
|
|
})(k.Profiler || (k.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
b[b.NONE = 0] = "NONE";
|
|
b[b.WINDOW = 1] = "WINDOW";
|
|
b[b.HANDLE_LEFT = 2] = "HANDLE_LEFT";
|
|
b[b.HANDLE_RIGHT = 3] = "HANDLE_RIGHT";
|
|
b[b.HANDLE_BOTH = 4] = "HANDLE_BOTH";
|
|
})(b.FlameChartDragTarget || (b.FlameChartDragTarget = {}));
|
|
var f = function() {
|
|
function f(s) {
|
|
this._controller = s;
|
|
this._initialized = !1;
|
|
this._canvas = document.createElement("canvas");
|
|
this._context = this._canvas.getContext("2d");
|
|
this._mouseController = new b.MouseController(this, this._canvas);
|
|
s = s.container;
|
|
s.appendChild(this._canvas);
|
|
s = s.getBoundingClientRect();
|
|
this.setSize(s.width);
|
|
}
|
|
Object.defineProperty(f.prototype, "canvas", {get:function() {
|
|
return this._canvas;
|
|
}, enumerable:!0, configurable:!0});
|
|
f.prototype.setSize = function(b, f) {
|
|
"undefined" === typeof f && (f = 20);
|
|
this._width = b;
|
|
this._height = f;
|
|
this._resetCanvas();
|
|
this.draw();
|
|
};
|
|
f.prototype.initialize = function(b, f) {
|
|
this._initialized = !0;
|
|
this.setRange(b, f);
|
|
this.setWindow(b, f, !1);
|
|
this.draw();
|
|
};
|
|
f.prototype.setWindow = function(b, f, d) {
|
|
"undefined" === typeof d && (d = !0);
|
|
this._windowStart = b;
|
|
this._windowEnd = f;
|
|
!d || this.draw();
|
|
};
|
|
f.prototype.setRange = function(b, f) {
|
|
var d = !1;
|
|
"undefined" === typeof d && (d = !0);
|
|
this._rangeStart = b;
|
|
this._rangeEnd = f;
|
|
!d || this.draw();
|
|
};
|
|
f.prototype.destroy = function() {
|
|
this._mouseController.destroy();
|
|
this._mouseController = null;
|
|
this._controller.container.removeChild(this._canvas);
|
|
this._controller = null;
|
|
};
|
|
f.prototype._resetCanvas = function() {
|
|
var b = window.devicePixelRatio, f = this._canvas;
|
|
f.width = this._width * b;
|
|
f.height = this._height * b;
|
|
f.style.width = this._width + "px";
|
|
f.style.height = this._height + "px";
|
|
};
|
|
f.prototype.draw = function() {
|
|
};
|
|
f.prototype._almostEq = function(b, f) {
|
|
var d;
|
|
"undefined" === typeof d && (d = 10);
|
|
return Math.abs(b - f) < 1 / Math.pow(10, d);
|
|
};
|
|
f.prototype._windowEqRange = function() {
|
|
return this._almostEq(this._windowStart, this._rangeStart) && this._almostEq(this._windowEnd, this._rangeEnd);
|
|
};
|
|
f.prototype._decimalPlaces = function(b) {
|
|
return(+b).toFixed(10).replace(/^-?\d*\.?|0+$/g, "").length;
|
|
};
|
|
f.prototype._toPixelsRelative = function(b) {
|
|
return 0;
|
|
};
|
|
f.prototype._toPixels = function(b) {
|
|
return 0;
|
|
};
|
|
f.prototype._toTimeRelative = function(b) {
|
|
return 0;
|
|
};
|
|
f.prototype._toTime = function(b) {
|
|
return 0;
|
|
};
|
|
f.prototype.onMouseWheel = function(b, m, d) {
|
|
b = this._toTime(b);
|
|
m = this._windowStart;
|
|
var a = this._windowEnd, c = a - m;
|
|
d = Math.max((f.MIN_WINDOW_LEN - c) / c, d);
|
|
this._controller.setWindow(m + (m - b) * d, a + (a - b) * d);
|
|
this.onHoverEnd();
|
|
};
|
|
f.prototype.onMouseDown = function(b, f) {
|
|
};
|
|
f.prototype.onMouseMove = function(b, f) {
|
|
};
|
|
f.prototype.onMouseOver = function(b, f) {
|
|
};
|
|
f.prototype.onMouseOut = function() {
|
|
};
|
|
f.prototype.onDrag = function(b, f, d, a, c, n) {
|
|
};
|
|
f.prototype.onDragEnd = function(b, f, d, a, c, n) {
|
|
};
|
|
f.prototype.onClick = function(b, f) {
|
|
};
|
|
f.prototype.onHoverStart = function(b, f) {
|
|
};
|
|
f.prototype.onHoverEnd = function() {
|
|
};
|
|
f.DRAGHANDLE_WIDTH = 4;
|
|
f.MIN_WINDOW_LEN = .1;
|
|
return f;
|
|
}();
|
|
b.FlameChartBase = f;
|
|
})(b.Profiler || (b.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.StringUtilities.trimMiddle, k = b.ObjectUtilities.createEmptyObject, s = function(m) {
|
|
function d(a, b) {
|
|
m.call(this, a);
|
|
this._textWidth = {};
|
|
this._minFrameWidthInPixels = 1;
|
|
this._snapshot = b;
|
|
this._kindStyle = k();
|
|
}
|
|
__extends(d, m);
|
|
d.prototype.setSize = function(a, b) {
|
|
m.prototype.setSize.call(this, a, b || this._initialized ? 12.5 * this._maxDepth : 100);
|
|
};
|
|
d.prototype.initialize = function(a, b) {
|
|
this._initialized = !0;
|
|
this._maxDepth = this._snapshot.maxDepth;
|
|
this.setRange(a, b);
|
|
this.setWindow(a, b, !1);
|
|
this.setSize(this._width, 12.5 * this._maxDepth);
|
|
};
|
|
d.prototype.destroy = function() {
|
|
m.prototype.destroy.call(this);
|
|
this._snapshot = null;
|
|
};
|
|
d.prototype.draw = function() {
|
|
var a = this._context, c = window.devicePixelRatio;
|
|
b.ColorStyle.reset();
|
|
a.save();
|
|
a.scale(c, c);
|
|
a.fillStyle = this._controller.theme.bodyBackground(1);
|
|
a.fillRect(0, 0, this._width, this._height);
|
|
this._initialized && this._drawChildren(this._snapshot);
|
|
a.restore();
|
|
};
|
|
d.prototype._drawChildren = function(a, b) {
|
|
"undefined" === typeof b && (b = 0);
|
|
var d = a.getChildRange(this._windowStart, this._windowEnd);
|
|
if (d) {
|
|
for (var p = d.startIndex;p <= d.endIndex;p++) {
|
|
var e = a.children[p];
|
|
this._drawFrame(e, b) && this._drawChildren(e, b + 1);
|
|
}
|
|
}
|
|
};
|
|
d.prototype._drawFrame = function(a, c) {
|
|
var d = this._context, p = this._toPixels(a.startTime), e = this._toPixels(a.endTime), q = e - p;
|
|
if (q <= this._minFrameWidthInPixels) {
|
|
return d.fillStyle = this._controller.theme.tabToolbar(1), d.fillRect(p, 12.5 * c, this._minFrameWidthInPixels, 12 + 12.5 * (a.maxDepth - a.depth)), !1;
|
|
}
|
|
0 > p && (e = q + p, p = 0);
|
|
var e = e - p, l = this._kindStyle[a.kind.id];
|
|
l || (l = b.ColorStyle.randomStyle(), l = this._kindStyle[a.kind.id] = {bgColor:l, textColor:b.ColorStyle.contrastStyle(l)});
|
|
d.save();
|
|
d.fillStyle = l.bgColor;
|
|
d.fillRect(p, 12.5 * c, e, 12);
|
|
12 < q && (q = a.kind.name) && q.length && (q = this._prepareText(d, q, e - 4), q.length && (d.fillStyle = l.textColor, d.textBaseline = "bottom", d.fillText(q, p + 2, 12.5 * (c + 1) - 1)));
|
|
d.restore();
|
|
return!0;
|
|
};
|
|
d.prototype._prepareText = function(a, b, d) {
|
|
var p = this._measureWidth(a, b);
|
|
if (d > p) {
|
|
return b;
|
|
}
|
|
for (var p = 3, e = b.length;p < e;) {
|
|
var q = p + e >> 1;
|
|
this._measureWidth(a, f(b, q)) < d ? p = q + 1 : e = q;
|
|
}
|
|
b = f(b, e - 1);
|
|
p = this._measureWidth(a, b);
|
|
return p <= d ? b : "";
|
|
};
|
|
d.prototype._measureWidth = function(a, b) {
|
|
var d = this._textWidth[b];
|
|
d || (d = a.measureText(b).width, this._textWidth[b] = d);
|
|
return d;
|
|
};
|
|
d.prototype._toPixelsRelative = function(a) {
|
|
return a * this._width / (this._windowEnd - this._windowStart);
|
|
};
|
|
d.prototype._toPixels = function(a) {
|
|
return this._toPixelsRelative(a - this._windowStart);
|
|
};
|
|
d.prototype._toTimeRelative = function(a) {
|
|
return a * (this._windowEnd - this._windowStart) / this._width;
|
|
};
|
|
d.prototype._toTime = function(a) {
|
|
return this._toTimeRelative(a) + this._windowStart;
|
|
};
|
|
d.prototype._getFrameAtPosition = function(a, b) {
|
|
var d = 1 + b / 12.5 | 0, p = this._snapshot.query(this._toTime(a));
|
|
if (p && p.depth >= d) {
|
|
for (;p && p.depth > d;) {
|
|
p = p.parent;
|
|
}
|
|
return p;
|
|
}
|
|
return null;
|
|
};
|
|
d.prototype.onMouseDown = function(a, b) {
|
|
this._windowEqRange() || (this._mouseController.updateCursor(g.MouseCursor.ALL_SCROLL), this._dragInfo = {windowStartInitial:this._windowStart, windowEndInitial:this._windowEnd, target:1});
|
|
};
|
|
d.prototype.onMouseMove = function(a, b) {
|
|
};
|
|
d.prototype.onMouseOver = function(a, b) {
|
|
};
|
|
d.prototype.onMouseOut = function() {
|
|
};
|
|
d.prototype.onDrag = function(a, b, d, p, e, q) {
|
|
if (a = this._dragInfo) {
|
|
e = this._toTimeRelative(-e), this._controller.setWindow(a.windowStartInitial + e, a.windowEndInitial + e);
|
|
}
|
|
};
|
|
d.prototype.onDragEnd = function(a, b, d, p, e, q) {
|
|
this._dragInfo = null;
|
|
this._mouseController.updateCursor(g.MouseCursor.DEFAULT);
|
|
};
|
|
d.prototype.onClick = function(a, b) {
|
|
this._dragInfo = null;
|
|
this._mouseController.updateCursor(g.MouseCursor.DEFAULT);
|
|
};
|
|
d.prototype.onHoverStart = function(a, b) {
|
|
var d = this._getFrameAtPosition(a, b);
|
|
d && (this._hoveredFrame = d, this._controller.showTooltip(this, d, a, b));
|
|
};
|
|
d.prototype.onHoverEnd = function() {
|
|
this._hoveredFrame && (this._hoveredFrame = null, this._controller.hideTooltip());
|
|
};
|
|
d.prototype.getStatistics = function(a) {
|
|
var b = this._snapshot;
|
|
b.statistics || b.calculateStatistics();
|
|
return b.statistics[a.id];
|
|
};
|
|
return d;
|
|
}(g.FlameChartBase);
|
|
g.FlameChart = s;
|
|
})(k.Profiler || (k.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.NumberUtilities.clamp;
|
|
(function(b) {
|
|
b[b.OVERLAY = 0] = "OVERLAY";
|
|
b[b.STACK = 1] = "STACK";
|
|
b[b.UNION = 2] = "UNION";
|
|
})(g.FlameChartOverviewMode || (g.FlameChartOverviewMode = {}));
|
|
var k = function(b) {
|
|
function m(d, a) {
|
|
"undefined" === typeof a && (a = 1);
|
|
this._mode = a;
|
|
this._overviewCanvasDirty = !0;
|
|
this._overviewCanvas = document.createElement("canvas");
|
|
this._overviewContext = this._overviewCanvas.getContext("2d");
|
|
b.call(this, d);
|
|
}
|
|
__extends(m, b);
|
|
m.prototype.setSize = function(d, a) {
|
|
b.prototype.setSize.call(this, d, a || 64);
|
|
};
|
|
Object.defineProperty(m.prototype, "mode", {set:function(b) {
|
|
this._mode = b;
|
|
this.draw();
|
|
}, enumerable:!0, configurable:!0});
|
|
m.prototype._resetCanvas = function() {
|
|
b.prototype._resetCanvas.call(this);
|
|
this._overviewCanvas.width = this._canvas.width;
|
|
this._overviewCanvas.height = this._canvas.height;
|
|
this._overviewCanvasDirty = !0;
|
|
};
|
|
m.prototype.draw = function() {
|
|
var b = this._context, a = window.devicePixelRatio, c = this._width, n = this._height;
|
|
b.save();
|
|
b.scale(a, a);
|
|
b.fillStyle = this._controller.theme.bodyBackground(1);
|
|
b.fillRect(0, 0, c, n);
|
|
b.restore();
|
|
this._initialized && (this._overviewCanvasDirty && (this._drawChart(), this._overviewCanvasDirty = !1), b.drawImage(this._overviewCanvas, 0, 0), this._drawSelection());
|
|
};
|
|
m.prototype._drawSelection = function() {
|
|
var b = this._context, a = this._height, c = window.devicePixelRatio, n = this._selection ? this._selection.left : this._toPixels(this._windowStart), p = this._selection ? this._selection.right : this._toPixels(this._windowEnd), e = this._controller.theme;
|
|
b.save();
|
|
b.scale(c, c);
|
|
this._selection ? (b.fillStyle = e.selectionText(.15), b.fillRect(n, 1, p - n, a - 1), b.fillStyle = "rgba(133, 0, 0, 1)", b.fillRect(n + .5, 0, p - n - 1, 4), b.fillRect(n + .5, a - 4, p - n - 1, 4)) : (b.fillStyle = e.bodyBackground(.4), b.fillRect(0, 1, n, a - 1), b.fillRect(p, 1, this._width, a - 1));
|
|
b.beginPath();
|
|
b.moveTo(n, 0);
|
|
b.lineTo(n, a);
|
|
b.moveTo(p, 0);
|
|
b.lineTo(p, a);
|
|
b.lineWidth = .5;
|
|
b.strokeStyle = e.foregroundTextGrey(1);
|
|
b.stroke();
|
|
a = Math.abs((this._selection ? this._toTime(this._selection.right) : this._windowEnd) - (this._selection ? this._toTime(this._selection.left) : this._windowStart));
|
|
b.fillStyle = e.selectionText(.5);
|
|
b.font = "8px sans-serif";
|
|
b.textBaseline = "alphabetic";
|
|
b.textAlign = "end";
|
|
b.fillText(a.toFixed(2), Math.min(n, p) - 4, 10);
|
|
b.fillText((a / 60).toFixed(2), Math.min(n, p) - 4, 20);
|
|
b.restore();
|
|
};
|
|
m.prototype._drawChart = function() {
|
|
var b = window.devicePixelRatio, a = this._height, c = this._controller.activeProfile, n = 4 * this._width, p = c.totalTime / n, e = this._overviewContext, q = this._controller.theme.blueHighlight(1);
|
|
e.save();
|
|
e.translate(0, b * a);
|
|
var l = -b * a / (c.maxDepth - 1);
|
|
e.scale(b / 4, l);
|
|
e.clearRect(0, 0, n, c.maxDepth - 1);
|
|
1 == this._mode && e.scale(1, 1 / c.snapshotCount);
|
|
for (var f = 0, w = c.snapshotCount;f < w;f++) {
|
|
var r = c.getSnapshotAt(f);
|
|
if (r) {
|
|
var h = null, x = 0;
|
|
e.beginPath();
|
|
e.moveTo(0, 0);
|
|
for (var y = 0;y < n;y++) {
|
|
x = c.startTime + y * p, x = (h = h ? h.queryNext(x) : r.query(x)) ? h.getDepth() - 1 : 0, e.lineTo(y, x);
|
|
}
|
|
e.lineTo(y, 0);
|
|
e.fillStyle = q;
|
|
e.fill();
|
|
1 == this._mode && e.translate(0, -a * b / l);
|
|
}
|
|
}
|
|
e.restore();
|
|
};
|
|
m.prototype._toPixelsRelative = function(b) {
|
|
return b * this._width / (this._rangeEnd - this._rangeStart);
|
|
};
|
|
m.prototype._toPixels = function(b) {
|
|
return this._toPixelsRelative(b - this._rangeStart);
|
|
};
|
|
m.prototype._toTimeRelative = function(b) {
|
|
return b * (this._rangeEnd - this._rangeStart) / this._width;
|
|
};
|
|
m.prototype._toTime = function(b) {
|
|
return this._toTimeRelative(b) + this._rangeStart;
|
|
};
|
|
m.prototype._getDragTargetUnderCursor = function(b, a) {
|
|
if (0 <= a && a < this._height) {
|
|
var c = this._toPixels(this._windowStart), n = this._toPixels(this._windowEnd), p = 2 + g.FlameChartBase.DRAGHANDLE_WIDTH / 2, e = b >= c - p && b <= c + p, q = b >= n - p && b <= n + p;
|
|
if (e && q) {
|
|
return 4;
|
|
}
|
|
if (e) {
|
|
return 2;
|
|
}
|
|
if (q) {
|
|
return 3;
|
|
}
|
|
if (!this._windowEqRange() && b > c + p && b < n - p) {
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
};
|
|
m.prototype.onMouseDown = function(b, a) {
|
|
var c = this._getDragTargetUnderCursor(b, a);
|
|
0 === c ? (this._selection = {left:b, right:b}, this.draw()) : (1 === c && this._mouseController.updateCursor(g.MouseCursor.GRABBING), this._dragInfo = {windowStartInitial:this._windowStart, windowEndInitial:this._windowEnd, target:c});
|
|
};
|
|
m.prototype.onMouseMove = function(b, a) {
|
|
var c = g.MouseCursor.DEFAULT, n = this._getDragTargetUnderCursor(b, a);
|
|
0 === n || this._selection || (c = 1 === n ? g.MouseCursor.GRAB : g.MouseCursor.EW_RESIZE);
|
|
this._mouseController.updateCursor(c);
|
|
};
|
|
m.prototype.onMouseOver = function(b, a) {
|
|
this.onMouseMove(b, a);
|
|
};
|
|
m.prototype.onMouseOut = function() {
|
|
this._mouseController.updateCursor(g.MouseCursor.DEFAULT);
|
|
};
|
|
m.prototype.onDrag = function(b, a, c, n, p, e) {
|
|
if (this._selection) {
|
|
this._selection = {left:b, right:f(c, 0, this._width - 1)}, this.draw();
|
|
} else {
|
|
b = this._dragInfo;
|
|
if (4 === b.target) {
|
|
if (0 !== p) {
|
|
b.target = 0 > p ? 2 : 3;
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
a = this._windowStart;
|
|
c = this._windowEnd;
|
|
p = this._toTimeRelative(p);
|
|
switch(b.target) {
|
|
case 1:
|
|
a = b.windowStartInitial + p;
|
|
c = b.windowEndInitial + p;
|
|
break;
|
|
case 2:
|
|
a = f(b.windowStartInitial + p, this._rangeStart, c - g.FlameChartBase.MIN_WINDOW_LEN);
|
|
break;
|
|
case 3:
|
|
c = f(b.windowEndInitial + p, a + g.FlameChartBase.MIN_WINDOW_LEN, this._rangeEnd);
|
|
break;
|
|
default:
|
|
return;
|
|
}
|
|
this._controller.setWindow(a, c);
|
|
}
|
|
};
|
|
m.prototype.onDragEnd = function(b, a, c, n, p, e) {
|
|
this._selection && (this._selection = null, this._controller.setWindow(this._toTime(b), this._toTime(c)));
|
|
this._dragInfo = null;
|
|
this.onMouseMove(c, n);
|
|
};
|
|
m.prototype.onClick = function(b, a) {
|
|
this._selection = this._dragInfo = null;
|
|
this._windowEqRange() || (0 === this._getDragTargetUnderCursor(b, a) && this._controller.moveWindowTo(this._toTime(b)), this.onMouseMove(b, a));
|
|
this.draw();
|
|
};
|
|
m.prototype.onHoverStart = function(b, a) {
|
|
};
|
|
m.prototype.onHoverEnd = function() {
|
|
};
|
|
return m;
|
|
}(g.FlameChartBase);
|
|
g.FlameChartOverview = k;
|
|
})(k.Profiler || (k.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.NumberUtilities.clamp;
|
|
(function(b) {
|
|
b[b.OVERVIEW = 0] = "OVERVIEW";
|
|
b[b.CHART = 1] = "CHART";
|
|
})(g.FlameChartHeaderType || (g.FlameChartHeaderType = {}));
|
|
var k = function(b) {
|
|
function m(d, a) {
|
|
this._type = a;
|
|
b.call(this, d);
|
|
}
|
|
__extends(m, b);
|
|
m.prototype.draw = function() {
|
|
var b = this._context, a = window.devicePixelRatio, c = this._width, n = this._height;
|
|
b.save();
|
|
b.scale(a, a);
|
|
b.fillStyle = this._controller.theme.tabToolbar(1);
|
|
b.fillRect(0, 0, c, n);
|
|
this._initialized && (0 == this._type ? (a = this._toPixels(this._windowStart), c = this._toPixels(this._windowEnd), b.fillStyle = this._controller.theme.bodyBackground(1), b.fillRect(a, 0, c - a, n), this._drawLabels(this._rangeStart, this._rangeEnd), this._drawDragHandle(a), this._drawDragHandle(c)) : this._drawLabels(this._windowStart, this._windowEnd));
|
|
b.restore();
|
|
};
|
|
m.prototype._drawLabels = function(b, a) {
|
|
var c = this._context, n = this._calculateTickInterval(b, a), p = Math.ceil(b / n) * n, e = 500 <= n, q = e ? 1E3 : 1, l = this._decimalPlaces(n / q), e = e ? "s" : "ms", f = this._toPixels(p), w = this._height / 2, r = this._controller.theme;
|
|
c.lineWidth = 1;
|
|
c.strokeStyle = r.contentTextDarkGrey(.5);
|
|
c.fillStyle = r.contentTextDarkGrey(1);
|
|
c.textAlign = "right";
|
|
c.textBaseline = "middle";
|
|
c.font = "11px sans-serif";
|
|
for (r = this._width + m.TICK_MAX_WIDTH;f < r;) {
|
|
c.fillText((p / q).toFixed(l) + " " + e, f - 7, w + 1), c.beginPath(), c.moveTo(f, 0), c.lineTo(f, this._height + 1), c.closePath(), c.stroke(), p += n, f = this._toPixels(p);
|
|
}
|
|
};
|
|
m.prototype._calculateTickInterval = function(b, a) {
|
|
var c = (a - b) / (this._width / m.TICK_MAX_WIDTH), n = Math.pow(10, Math.floor(Math.log(c) / Math.LN10)), c = c / n;
|
|
return 5 < c ? 10 * n : 2 < c ? 5 * n : 1 < c ? 2 * n : n;
|
|
};
|
|
m.prototype._drawDragHandle = function(b) {
|
|
var a = this._context;
|
|
a.lineWidth = 2;
|
|
a.strokeStyle = this._controller.theme.bodyBackground(1);
|
|
a.fillStyle = this._controller.theme.foregroundTextGrey(.7);
|
|
this._drawRoundedRect(a, b - g.FlameChartBase.DRAGHANDLE_WIDTH / 2, g.FlameChartBase.DRAGHANDLE_WIDTH, this._height - 2);
|
|
};
|
|
m.prototype._drawRoundedRect = function(b, a, c, n) {
|
|
var p, e = !0;
|
|
"undefined" === typeof e && (e = !0);
|
|
"undefined" === typeof p && (p = !0);
|
|
b.beginPath();
|
|
b.moveTo(a + 2, 1);
|
|
b.lineTo(a + c - 2, 1);
|
|
b.quadraticCurveTo(a + c, 1, a + c, 3);
|
|
b.lineTo(a + c, 1 + n - 2);
|
|
b.quadraticCurveTo(a + c, 1 + n, a + c - 2, 1 + n);
|
|
b.lineTo(a + 2, 1 + n);
|
|
b.quadraticCurveTo(a, 1 + n, a, 1 + n - 2);
|
|
b.lineTo(a, 3);
|
|
b.quadraticCurveTo(a, 1, a + 2, 1);
|
|
b.closePath();
|
|
e && b.stroke();
|
|
p && b.fill();
|
|
};
|
|
m.prototype._toPixelsRelative = function(b) {
|
|
return b * this._width / (0 === this._type ? this._rangeEnd - this._rangeStart : this._windowEnd - this._windowStart);
|
|
};
|
|
m.prototype._toPixels = function(b) {
|
|
return this._toPixelsRelative(b - (0 === this._type ? this._rangeStart : this._windowStart));
|
|
};
|
|
m.prototype._toTimeRelative = function(b) {
|
|
return b * (0 === this._type ? this._rangeEnd - this._rangeStart : this._windowEnd - this._windowStart) / this._width;
|
|
};
|
|
m.prototype._toTime = function(b) {
|
|
return this._toTimeRelative(b) + (0 === this._type ? this._rangeStart : this._windowStart);
|
|
};
|
|
m.prototype._getDragTargetUnderCursor = function(b, a) {
|
|
if (0 <= a && a < this._height) {
|
|
if (0 === this._type) {
|
|
var c = this._toPixels(this._windowStart), n = this._toPixels(this._windowEnd), p = 2 + g.FlameChartBase.DRAGHANDLE_WIDTH / 2, c = b >= c - p && b <= c + p, n = b >= n - p && b <= n + p;
|
|
if (c && n) {
|
|
return 4;
|
|
}
|
|
if (c) {
|
|
return 2;
|
|
}
|
|
if (n) {
|
|
return 3;
|
|
}
|
|
}
|
|
if (!this._windowEqRange()) {
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
};
|
|
m.prototype.onMouseDown = function(b, a) {
|
|
var c = this._getDragTargetUnderCursor(b, a);
|
|
1 === c && this._mouseController.updateCursor(g.MouseCursor.GRABBING);
|
|
this._dragInfo = {windowStartInitial:this._windowStart, windowEndInitial:this._windowEnd, target:c};
|
|
};
|
|
m.prototype.onMouseMove = function(b, a) {
|
|
var c = g.MouseCursor.DEFAULT, n = this._getDragTargetUnderCursor(b, a);
|
|
0 !== n && (1 !== n ? c = g.MouseCursor.EW_RESIZE : 1 !== n || this._windowEqRange() || (c = g.MouseCursor.GRAB));
|
|
this._mouseController.updateCursor(c);
|
|
};
|
|
m.prototype.onMouseOver = function(b, a) {
|
|
this.onMouseMove(b, a);
|
|
};
|
|
m.prototype.onMouseOut = function() {
|
|
this._mouseController.updateCursor(g.MouseCursor.DEFAULT);
|
|
};
|
|
m.prototype.onDrag = function(b, a, c, n, p, e) {
|
|
b = this._dragInfo;
|
|
if (4 === b.target) {
|
|
if (0 !== p) {
|
|
b.target = 0 > p ? 2 : 3;
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
a = this._windowStart;
|
|
c = this._windowEnd;
|
|
p = this._toTimeRelative(p);
|
|
switch(b.target) {
|
|
case 1:
|
|
c = 0 === this._type ? 1 : -1;
|
|
a = b.windowStartInitial + c * p;
|
|
c = b.windowEndInitial + c * p;
|
|
break;
|
|
case 2:
|
|
a = f(b.windowStartInitial + p, this._rangeStart, c - g.FlameChartBase.MIN_WINDOW_LEN);
|
|
break;
|
|
case 3:
|
|
c = f(b.windowEndInitial + p, a + g.FlameChartBase.MIN_WINDOW_LEN, this._rangeEnd);
|
|
break;
|
|
default:
|
|
return;
|
|
}
|
|
this._controller.setWindow(a, c);
|
|
};
|
|
m.prototype.onDragEnd = function(b, a, c, n, p, e) {
|
|
this._dragInfo = null;
|
|
this.onMouseMove(c, n);
|
|
};
|
|
m.prototype.onClick = function(b, a) {
|
|
1 === this._dragInfo.target && this._mouseController.updateCursor(g.MouseCursor.GRAB);
|
|
};
|
|
m.prototype.onHoverStart = function(b, a) {
|
|
};
|
|
m.prototype.onHoverEnd = function() {
|
|
};
|
|
m.TICK_MAX_WIDTH = 75;
|
|
return m;
|
|
}(g.FlameChartBase);
|
|
g.FlameChartHeader = k;
|
|
})(k.Profiler || (k.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
var g = function() {
|
|
function b(d, a, c, n, p) {
|
|
this.pageLoaded = d;
|
|
this.threadsTotal = a;
|
|
this.threadsLoaded = c;
|
|
this.threadFilesTotal = n;
|
|
this.threadFilesLoaded = p;
|
|
}
|
|
b.prototype.toString = function() {
|
|
return "[" + ["pageLoaded", "threadsTotal", "threadsLoaded", "threadFilesTotal", "threadFilesLoaded"].map(function(b, a, c) {
|
|
return b + ":" + this[b];
|
|
}, this).join(", ") + "]";
|
|
};
|
|
return b;
|
|
}();
|
|
b.TraceLoggerProgressInfo = g;
|
|
var k = function() {
|
|
function m(b) {
|
|
this._baseUrl = b;
|
|
this._threads = [];
|
|
this._progressInfo = null;
|
|
}
|
|
m.prototype.loadPage = function(b, a, c) {
|
|
this._threads = [];
|
|
this._pageLoadCallback = a;
|
|
this._pageLoadProgressCallback = c;
|
|
this._progressInfo = new g(!1, 0, 0, 0, 0);
|
|
this._loadData([b], this._onLoadPage.bind(this));
|
|
};
|
|
Object.defineProperty(m.prototype, "buffers", {get:function() {
|
|
for (var b = [], a = 0, c = this._threads.length;a < c;a++) {
|
|
b.push(this._threads[a].buffer);
|
|
}
|
|
return b;
|
|
}, enumerable:!0, configurable:!0});
|
|
m.prototype._onProgress = function() {
|
|
this._pageLoadProgressCallback && this._pageLoadProgressCallback.call(this, this._progressInfo);
|
|
};
|
|
m.prototype._onLoadPage = function(d) {
|
|
if (d && 1 == d.length) {
|
|
var a = this, c = 0;
|
|
d = d[0];
|
|
var n = d.length;
|
|
this._threads = Array(n);
|
|
this._progressInfo.pageLoaded = !0;
|
|
this._progressInfo.threadsTotal = n;
|
|
for (var p = 0;p < d.length;p++) {
|
|
var e = d[p], q = [e.dict, e.tree];
|
|
e.corrections && q.push(e.corrections);
|
|
this._progressInfo.threadFilesTotal += q.length;
|
|
this._loadData(q, function(e) {
|
|
return function(d) {
|
|
d && (d = new b.Thread(d), d.buffer.name = "Thread " + e, a._threads[e] = d);
|
|
c++;
|
|
a._progressInfo.threadsLoaded++;
|
|
a._onProgress();
|
|
c === n && a._pageLoadCallback.call(a, null, a._threads);
|
|
};
|
|
}(p), function(b) {
|
|
a._progressInfo.threadFilesLoaded++;
|
|
a._onProgress();
|
|
});
|
|
}
|
|
this._onProgress();
|
|
} else {
|
|
this._pageLoadCallback.call(this, "Error loading page.", null);
|
|
}
|
|
};
|
|
m.prototype._loadData = function(b, a, c) {
|
|
var n = 0, p = 0, e = b.length, q = [];
|
|
q.length = e;
|
|
for (var l = 0;l < e;l++) {
|
|
var f = this._baseUrl + b[l], w = new XMLHttpRequest, r = /\.tl$/i.test(f) ? "arraybuffer" : "json";
|
|
w.open("GET", f, !0);
|
|
w.responseType = r;
|
|
w.onload = function(b, l) {
|
|
return function(d) {
|
|
if ("json" === l) {
|
|
if (d = this.response, "string" === typeof d) {
|
|
try {
|
|
d = JSON.parse(d), q[b] = d;
|
|
} catch (r) {
|
|
p++;
|
|
}
|
|
} else {
|
|
q[b] = d;
|
|
}
|
|
} else {
|
|
q[b] = this.response;
|
|
}
|
|
++n;
|
|
c && c(n);
|
|
n === e && a(q);
|
|
};
|
|
}(l, r);
|
|
w.send();
|
|
}
|
|
};
|
|
m.colors = "#0044ff #8c4b00 #cc5c33 #ff80c4 #ffbfd9 #ff8800 #8c5e00 #adcc33 #b380ff #bfd9ff #ffaa00 #8c0038 #bf8f30 #f780ff #cc99c9 #aaff00 #000073 #452699 #cc8166 #cca799 #000066 #992626 #cc6666 #ccc299 #ff6600 #526600 #992663 #cc6681 #99ccc2 #ff0066 #520066 #269973 #61994d #739699 #ffcc00 #006629 #269199 #94994d #738299 #ff0000 #590000 #234d8c #8c6246 #7d7399 #ee00ff #00474d #8c2385 #8c7546 #7c8c69 #eeff00 #4d003d #662e1a #62468c #8c6969 #6600ff #4c2900 #1a6657 #8c464f #8c6981 #44ff00 #401100 #1a2466 #663355 #567365 #d90074 #403300 #101d40 #59562d #66614d #cc0000 #002b40 #234010 #4c2626 #4d5e66 #00a3cc #400011 #231040 #4c3626 #464359 #0000bf #331b00 #80e6ff #311a33 #4d3939 #a69b00 #003329 #80ffb2 #331a20 #40303d #00a658 #40ffd9 #ffc480 #ffe1bf #332b26 #8c2500 #9933cc #80fff6 #ffbfbf #303326 #005e8c #33cc47 #b2ff80 #c8bfff #263332 #00708c #cc33ad #ffe680 #f2ffbf #262a33 #388c00 #335ccc #8091ff #bfffd9".split(" ");
|
|
return m;
|
|
}();
|
|
b.TraceLogger = k;
|
|
})(b.TraceLogger || (b.TraceLogger = {}));
|
|
})(b.Profiler || (b.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
var k;
|
|
(function(b) {
|
|
b[b.START_HI = 0] = "START_HI";
|
|
b[b.START_LO = 4] = "START_LO";
|
|
b[b.STOP_HI = 8] = "STOP_HI";
|
|
b[b.STOP_LO = 12] = "STOP_LO";
|
|
b[b.TEXTID = 16] = "TEXTID";
|
|
b[b.NEXTID = 20] = "NEXTID";
|
|
})(k || (k = {}));
|
|
k = function() {
|
|
function f(m) {
|
|
2 <= m.length && (this._text = m[0], this._data = new DataView(m[1]), this._buffer = new b.TimelineBuffer, this._walkTree(0));
|
|
}
|
|
Object.defineProperty(f.prototype, "buffer", {get:function() {
|
|
return this._buffer;
|
|
}, enumerable:!0, configurable:!0});
|
|
f.prototype._walkTree = function(b) {
|
|
var d = this._data, a = this._buffer;
|
|
do {
|
|
var c = b * f.ITEM_SIZE, n = 4294967295 * d.getUint32(c + 0) + d.getUint32(c + 4), p = 4294967295 * d.getUint32(c + 8) + d.getUint32(c + 12), e = d.getUint32(c + 16), c = d.getUint32(c + 20), q = 1 === (e & 1), e = e >>> 1, e = this._text[e];
|
|
a.enter(e, null, n / 1E6);
|
|
q && this._walkTree(b + 1);
|
|
a.leave(e, null, p / 1E6);
|
|
b = c;
|
|
} while (0 !== b);
|
|
};
|
|
f.ITEM_SIZE = 24;
|
|
return f;
|
|
}();
|
|
f.Thread = k;
|
|
})(b.TraceLogger || (b.TraceLogger = {}));
|
|
})(b.Profiler || (b.Profiler = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.NumberUtilities.clamp, k = function() {
|
|
function b() {
|
|
this.length = 0;
|
|
this.lines = [];
|
|
this.format = [];
|
|
this.time = [];
|
|
this.repeat = [];
|
|
this.length = 0;
|
|
}
|
|
b.prototype.append = function(b, a) {
|
|
var c = this.lines;
|
|
0 < c.length && c[c.length - 1] === b ? this.repeat[c.length - 1]++ : (this.lines.push(b), this.repeat.push(1), this.format.push(a ? {backgroundFillStyle:a} : void 0), this.time.push(performance.now()), this.length++);
|
|
};
|
|
b.prototype.get = function(b) {
|
|
return this.lines[b];
|
|
};
|
|
b.prototype.getFormat = function(b) {
|
|
return this.format[b];
|
|
};
|
|
b.prototype.getTime = function(b) {
|
|
return this.time[b];
|
|
};
|
|
b.prototype.getRepeat = function(b) {
|
|
return this.repeat[b];
|
|
};
|
|
return b;
|
|
}();
|
|
g.Buffer = k;
|
|
var s = function() {
|
|
function b(d) {
|
|
this.lineColor = "#2A2A2A";
|
|
this.alternateLineColor = "#262626";
|
|
this.textColor = "#FFFFFF";
|
|
this.selectionColor = "#96C9F3";
|
|
this.selectionTextColor = "#000000";
|
|
this.ratio = 1;
|
|
this.showLineNumbers = !0;
|
|
this.showLineCounter = this.showLineTime = !1;
|
|
this.canvas = d;
|
|
this.canvas.focus();
|
|
this.context = d.getContext("2d", {original:!0});
|
|
this.context.fillStyle = "#FFFFFF";
|
|
this.fontSize = 10;
|
|
this.columnIndex = this.pageIndex = this.lineIndex = 0;
|
|
this.selection = null;
|
|
this.lineHeight = 15;
|
|
this.hasFocus = !1;
|
|
window.addEventListener("resize", this._resizeHandler.bind(this), !1);
|
|
this._resizeHandler();
|
|
this.textMarginBottom = this.textMarginLeft = 4;
|
|
this.refreshFrequency = 0;
|
|
this.buffer = new k;
|
|
d.addEventListener("keydown", function(b) {
|
|
var d = 0;
|
|
switch(b.keyCode) {
|
|
case h:
|
|
this.showLineNumbers = !this.showLineNumbers;
|
|
break;
|
|
case x:
|
|
this.showLineTime = !this.showLineTime;
|
|
break;
|
|
case e:
|
|
d = -1;
|
|
break;
|
|
case q:
|
|
d = 1;
|
|
break;
|
|
case a:
|
|
d = -this.pageLineCount;
|
|
break;
|
|
case c:
|
|
d = this.pageLineCount;
|
|
break;
|
|
case n:
|
|
d = -this.lineIndex;
|
|
break;
|
|
case p:
|
|
d = this.buffer.length - this.lineIndex;
|
|
break;
|
|
case l:
|
|
this.columnIndex -= b.metaKey ? 10 : 1;
|
|
0 > this.columnIndex && (this.columnIndex = 0);
|
|
b.preventDefault();
|
|
break;
|
|
case f:
|
|
this.columnIndex += b.metaKey ? 10 : 1;
|
|
b.preventDefault();
|
|
break;
|
|
case w:
|
|
b.metaKey && (this.selection = {start:0, end:this.buffer.length}, b.preventDefault());
|
|
break;
|
|
case r:
|
|
if (b.metaKey) {
|
|
var g = "";
|
|
if (this.selection) {
|
|
for (var m = this.selection.start;m <= this.selection.end;m++) {
|
|
g += this.buffer.get(m) + "\n";
|
|
}
|
|
} else {
|
|
g = this.buffer.get(this.lineIndex);
|
|
}
|
|
alert(g);
|
|
}
|
|
;
|
|
}
|
|
b.metaKey && (d *= this.pageLineCount);
|
|
d && (this.scroll(d), b.preventDefault());
|
|
d && b.shiftKey ? this.selection ? this.lineIndex > this.selection.start ? this.selection.end = this.lineIndex : this.selection.start = this.lineIndex : 0 < d ? this.selection = {start:this.lineIndex - d, end:this.lineIndex} : 0 > d && (this.selection = {start:this.lineIndex, end:this.lineIndex - d}) : d && (this.selection = null);
|
|
this.paint();
|
|
}.bind(this), !1);
|
|
d.addEventListener("focus", function(a) {
|
|
this.hasFocus = !0;
|
|
}.bind(this), !1);
|
|
d.addEventListener("blur", function(a) {
|
|
this.hasFocus = !1;
|
|
}.bind(this), !1);
|
|
var a = 33, c = 34, n = 36, p = 35, e = 38, q = 40, l = 37, f = 39, w = 65, r = 67, h = 78, x = 84;
|
|
}
|
|
b.prototype.resize = function() {
|
|
this._resizeHandler();
|
|
};
|
|
b.prototype._resizeHandler = function() {
|
|
var b = this.canvas.parentElement, a = b.clientWidth, b = b.clientHeight - 1, c = window.devicePixelRatio || 1;
|
|
1 !== c ? (this.ratio = c / 1, this.canvas.width = a * this.ratio, this.canvas.height = b * this.ratio, this.canvas.style.width = a + "px", this.canvas.style.height = b + "px") : (this.ratio = 1, this.canvas.width = a, this.canvas.height = b);
|
|
this.pageLineCount = Math.floor(this.canvas.height / this.lineHeight);
|
|
};
|
|
b.prototype.gotoLine = function(b) {
|
|
this.lineIndex = f(b, 0, this.buffer.length - 1);
|
|
};
|
|
b.prototype.scrollIntoView = function() {
|
|
this.lineIndex < this.pageIndex ? this.pageIndex = this.lineIndex : this.lineIndex >= this.pageIndex + this.pageLineCount && (this.pageIndex = this.lineIndex - this.pageLineCount + 1);
|
|
};
|
|
b.prototype.scroll = function(b) {
|
|
this.gotoLine(this.lineIndex + b);
|
|
this.scrollIntoView();
|
|
};
|
|
b.prototype.paint = function() {
|
|
var b = this.pageLineCount;
|
|
this.pageIndex + b > this.buffer.length && (b = this.buffer.length - this.pageIndex);
|
|
var a = this.textMarginLeft, c = a + (this.showLineNumbers ? 5 * (String(this.buffer.length).length + 2) : 0), n = c + (this.showLineTime ? 40 : 10), p = n + 25;
|
|
this.context.font = this.fontSize + 'px Consolas, "Liberation Mono", Courier, monospace';
|
|
this.context.setTransform(this.ratio, 0, 0, this.ratio, 0, 0);
|
|
for (var e = this.canvas.width, q = this.lineHeight, l = 0;l < b;l++) {
|
|
var f = l * this.lineHeight, w = this.pageIndex + l, r = this.buffer.get(w), h = this.buffer.getFormat(w), x = this.buffer.getRepeat(w), y = 1 < w ? this.buffer.getTime(w) - this.buffer.getTime(0) : 0;
|
|
this.context.fillStyle = w % 2 ? this.lineColor : this.alternateLineColor;
|
|
h && h.backgroundFillStyle && (this.context.fillStyle = h.backgroundFillStyle);
|
|
this.context.fillRect(0, f, e, q);
|
|
this.context.fillStyle = this.selectionTextColor;
|
|
this.context.fillStyle = this.textColor;
|
|
this.selection && w >= this.selection.start && w <= this.selection.end && (this.context.fillStyle = this.selectionColor, this.context.fillRect(0, f, e, q), this.context.fillStyle = this.selectionTextColor);
|
|
this.hasFocus && w === this.lineIndex && (this.context.fillStyle = this.selectionColor, this.context.fillRect(0, f, e, q), this.context.fillStyle = this.selectionTextColor);
|
|
0 < this.columnIndex && (r = r.substring(this.columnIndex));
|
|
f = (l + 1) * this.lineHeight - this.textMarginBottom;
|
|
this.showLineNumbers && this.context.fillText(String(w), a, f);
|
|
this.showLineTime && this.context.fillText(y.toFixed(1).padLeft(" ", 6), c, f);
|
|
1 < x && this.context.fillText(String(x).padLeft(" ", 3), n, f);
|
|
this.context.fillText(r, p, f);
|
|
}
|
|
};
|
|
b.prototype.refreshEvery = function(b) {
|
|
function a() {
|
|
c.paint();
|
|
c.refreshFrequency && setTimeout(a, c.refreshFrequency);
|
|
}
|
|
var c = this;
|
|
this.refreshFrequency = b;
|
|
c.refreshFrequency && setTimeout(a, c.refreshFrequency);
|
|
};
|
|
b.prototype.isScrolledToBottom = function() {
|
|
return this.lineIndex === this.buffer.length - 1;
|
|
};
|
|
return b;
|
|
}();
|
|
g.Terminal = s;
|
|
})(k.Terminal || (k.Terminal = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
var f = function() {
|
|
function b(f) {
|
|
this._lastWeightedTime = this._lastTime = this._index = 0;
|
|
this._gradient = "#FF0000 #FF1100 #FF2300 #FF3400 #FF4600 #FF5700 #FF6900 #FF7B00 #FF8C00 #FF9E00 #FFAF00 #FFC100 #FFD300 #FFE400 #FFF600 #F7FF00 #E5FF00 #D4FF00 #C2FF00 #B0FF00 #9FFF00 #8DFF00 #7CFF00 #6AFF00 #58FF00 #47FF00 #35FF00 #24FF00 #12FF00 #00FF00".split(" ");
|
|
this._canvas = f;
|
|
this._context = f.getContext("2d");
|
|
window.addEventListener("resize", this._resizeHandler.bind(this), !1);
|
|
this._resizeHandler();
|
|
}
|
|
b.prototype._resizeHandler = function() {
|
|
var b = this._canvas.parentElement, f = b.clientWidth, b = b.clientHeight - 1, d = window.devicePixelRatio || 1;
|
|
1 !== d ? (this._ratio = d / 1, this._canvas.width = f * this._ratio, this._canvas.height = b * this._ratio, this._canvas.style.width = f + "px", this._canvas.style.height = b + "px") : (this._ratio = 1, this._canvas.width = f, this._canvas.height = b);
|
|
};
|
|
b.prototype.tickAndRender = function(b) {
|
|
"undefined" === typeof b && (b = !1);
|
|
if (0 === this._lastTime) {
|
|
this._lastTime = performance.now();
|
|
} else {
|
|
var f = (performance.now() - this._lastTime) * (1 - .9) + .9 * this._lastWeightedTime, d = this._context, a = 2 * this._ratio, c = (this._canvas.width - 20) / (a + 1) | 0, n = this._index++;
|
|
this._index > c && (this._index = 0);
|
|
d.globalAlpha = 1;
|
|
d.fillStyle = "black";
|
|
d.fillRect(20 + n * (a + 1), 0, 4 * a, this._canvas.height);
|
|
c = 1E3 / 60 / f;
|
|
d.fillStyle = this._gradient[c * (this._gradient.length - 1) | 0];
|
|
d.globalAlpha = b ? .5 : 1;
|
|
d.fillRect(20 + n * (a + 1), 0, a, this._canvas.height * c | 0);
|
|
0 === n % 16 && (d.globalAlpha = 1, d.fillStyle = "black", d.fillRect(0, 0, 20, this._canvas.height), d.fillStyle = "white", d.font = "10px Arial", d.fillText((1E3 / f).toFixed(0), 2, 8));
|
|
this._lastTime = performance.now();
|
|
this._lastWeightedTime = f;
|
|
}
|
|
};
|
|
return b;
|
|
}();
|
|
b.FPS = f;
|
|
})(b.Mini || (b.Mini = {}));
|
|
})(b.Tools || (b.Tools = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
console.timeEnd("Load Shared Dependencies");
|
|
console.time("Load AVM2 Dependencies");
|
|
(function(b) {
|
|
(function(k) {
|
|
k.timelineBuffer = new b.Tools.Profiler.TimelineBuffer("AVM2");
|
|
k.counter = new b.Metrics.Counter(!0);
|
|
k.countTimeline = function(b, f) {
|
|
"undefined" === typeof f && (f = 1);
|
|
k.timelineBuffer && k.timelineBuffer.count(b, f);
|
|
};
|
|
k.enterTimeline = function(b, f) {
|
|
};
|
|
k.leaveTimeline = function(b) {
|
|
};
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
function g(b) {
|
|
for (var g = 0;g < arguments.length - 1;g++) {
|
|
}
|
|
var k = b.message;
|
|
Array.prototype.slice.call(arguments, 1).forEach(function(b, d) {
|
|
k = k.replace("%" + (d + 1), b);
|
|
});
|
|
return "Error #" + b.code + ": " + k;
|
|
}
|
|
k.Errors = {CallOfNonFunctionError:{code:1006, message:"%1 is not a function."}, ConvertNullToObjectError:{code:1009, message:"Cannot access a property or method of a null object reference."}, ConvertUndefinedToObjectError:{code:1010, message:"A term is undefined and has no properties."}, ClassNotFoundError:{code:1014, message:"Class %1 could not be found."}, CheckTypeFailedError:{code:1034, message:"Type Coercion failed: cannot convert %1 to %2."}, WrongArgumentCountError:{code:1063, message:"Argument count mismatch on %1. Expected %2, got %3."},
|
|
XMLMarkupMustBeWellFormed:{code:1088, message:"The markup in the document following the root element must be well-formed."}, OutOfRangeError:{code:1125, message:"The index %1 is out of range %2."}, VectorFixedError:{code:1126, message:"Cannot change the length of a fixed Vector."}, InvalidRangeError:{code:1506, message:"The specified range is invalid."}, NullArgumentError:{code:1507, message:"Argument %1 cannot be null."}, InvalidArgumentError:{code:1508, message:"The value specified for argument %1 is invalid."},
|
|
InvalidParamError:{code:2004, message:"One of the parameters is invalid."}, ParamRangeError:{code:2006, message:"The supplied index is out of bounds."}, NullPointerError:{code:2007, message:"Parameter %1 must be non-null."}, InvalidEnumError:{code:2008, message:"Parameter %1 must be one of the accepted values."}, InvalidBitmapData:{code:2015, message:"Invalid BitmapData."}, CompressedDataError:{code:2058, message:"There was an error decompressing the data."}, TooFewArgumentsError:{code:2001,
|
|
message:"Too few arguments were specified; got %1, %2 expected."}, SocketConnectError:{code:2011, message:"Socket connection failed to %1:%2."}, CantAddSelfError:{code:2024, message:"An object cannot be added as a child of itself."}, NotAChildError:{code:2025, message:"The supplied DisplayObject must be a child of the caller."}, ExternalInterfaceNotAvailableError:{code:2067, message:"The ExternalInterface is not available in this container. ExternalInterface requires Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime."},
|
|
InvalidStageMethodError:{code:2071, message:"The Stage class does not implement this property or method."}, SceneNotFoundError:{code:2108, message:"Scene %1 was not found."}, FrameLabelNotFoundError:{code:2109, message:"Frame label %1 not found in scene %2."}, CantAddParentError:{code:2150, message:"An object cannot be added as a child to one of it's children (or children's children, etc.)."}, ObjectWithStringsParamError:{code:2196, message:"Parameter %1 must be an Object with only String values."}};
|
|
k.getErrorMessage = function(f) {
|
|
if (!b.AVM2.Runtime.debuggerMode.value) {
|
|
return "Error #" + f;
|
|
}
|
|
for (var g in k.Errors) {
|
|
if (k.Errors[g].code == f) {
|
|
return "Error #" + f + ": " + k.Errors[g].message;
|
|
}
|
|
}
|
|
return "Error #" + f + ": (unknown)";
|
|
};
|
|
k.formatErrorMessage = g;
|
|
k.translateErrorMessage = function(f) {
|
|
if (f.type) {
|
|
switch(f.type) {
|
|
case "undefined_method":
|
|
return g(k.Errors.CallOfNonFunctionError, "value");
|
|
default:
|
|
throw b.Debug.notImplemented(f.type);;
|
|
}
|
|
} else {
|
|
return 0 <= f.message.indexOf("is not a function") ? g(k.Errors.CallOfNonFunctionError, "value") : f.message;
|
|
}
|
|
};
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Errors = Shumway.AVM2.Errors, getErrorMessage = Shumway.AVM2.getErrorMessage, formatErrorMessage = Shumway.AVM2.formatErrorMessage, translateErrorMessage = Shumway.AVM2.translateErrorMessage;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = null;
|
|
"undefined" !== typeof TextDecoder && (f = new TextDecoder);
|
|
var k = function() {
|
|
function g(b) {
|
|
this._bytes = b;
|
|
this._view = new DataView(b.buffer, b.byteOffset);
|
|
this._position = 0;
|
|
}
|
|
g._getResultBuffer = function(b) {
|
|
if (!g._resultBuffer || g._resultBuffer.length < b) {
|
|
g._resultBuffer = new Int32Array(2 * b);
|
|
}
|
|
return g._resultBuffer;
|
|
};
|
|
Object.defineProperty(g.prototype, "position", {get:function() {
|
|
return this._position;
|
|
}, enumerable:!0, configurable:!0});
|
|
g.prototype.remaining = function() {
|
|
return this._bytes.length - this._position;
|
|
};
|
|
g.prototype.seek = function(b) {
|
|
this._position = b;
|
|
};
|
|
g.prototype.readU8 = function() {
|
|
return this._bytes[this._position++];
|
|
};
|
|
g.prototype.readU8s = function(b) {
|
|
var d = new Uint8Array(b);
|
|
d.set(this._bytes.subarray(this._position, this._position + b), 0);
|
|
this._position += b;
|
|
return d;
|
|
};
|
|
g.prototype.readS8 = function() {
|
|
return this._bytes[this._position++] << 24 >> 24;
|
|
};
|
|
g.prototype.readU32 = function() {
|
|
return this.readS32() >>> 0;
|
|
};
|
|
g.prototype.readU30 = function() {
|
|
return this.readU32();
|
|
};
|
|
g.prototype.readU30Unsafe = function() {
|
|
return this.readU32();
|
|
};
|
|
g.prototype.readS16 = function() {
|
|
return this.readU30Unsafe() << 16 >> 16;
|
|
};
|
|
g.prototype.readS32 = function() {
|
|
var b = this.readU8();
|
|
b & 128 && (b = b & 127 | this.readU8() << 7, b & 16384 && (b = b & 16383 | this.readU8() << 14, b & 2097152 && (b = b & 2097151 | this.readU8() << 21, b & 268435456 && (b = b & 268435455 | this.readU8() << 28, b &= 4294967295))));
|
|
return b;
|
|
};
|
|
g.prototype.readWord = function() {
|
|
var b = this._view.getUint32(this._position, !0);
|
|
this._position += 4;
|
|
return b;
|
|
};
|
|
g.prototype.readS24 = function() {
|
|
return(this.readU8() | this.readU8() << 8 | this.readU8() << 16) << 8 >> 8;
|
|
};
|
|
g.prototype.readDouble = function() {
|
|
var b = this._view.getFloat64(this._position, !0);
|
|
this._position += 8;
|
|
return b;
|
|
};
|
|
g.prototype.readUTFString = function(m) {
|
|
if (f) {
|
|
var d = this._position;
|
|
this._position += m;
|
|
return f.decode(this._bytes.subarray(d, d + m));
|
|
}
|
|
var d = this._position, a = d + m, c = this._bytes, n = 0;
|
|
for (m = g._getResultBuffer(2 * m);d < a;) {
|
|
var p = c[d++];
|
|
if (127 >= p) {
|
|
m[n++] = p;
|
|
} else {
|
|
if (192 <= p) {
|
|
var e = 0;
|
|
224 > p ? e = (p & 31) << 6 | c[d++] & 63 : 240 > p ? e = (p & 15) << 12 | (c[d++] & 63) << 6 | c[d++] & 63 : (e = ((p & 7) << 18 | (c[d++] & 63) << 12 | (c[d++] & 63) << 6 | c[d++] & 63) - 65536, m[n++] = ((e & 1047552) >>> 10) + 55296, e = (e & 1023) + 56320);
|
|
m[n++] = e;
|
|
}
|
|
}
|
|
}
|
|
this._position = d;
|
|
return b.StringUtilities.fromCharCodeArray(m.subarray(0, n));
|
|
};
|
|
g._resultBuffer = new Int32Array(256);
|
|
return g;
|
|
}();
|
|
g.AbcStream = k;
|
|
})(k.ABC || (k.ABC = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
__extends = this.__extends || function(b, k) {
|
|
function g() {
|
|
this.constructor = b;
|
|
}
|
|
for (var f in k) {
|
|
k.hasOwnProperty(f) && (b[f] = k[f]);
|
|
}
|
|
g.prototype = k.prototype;
|
|
b.prototype = new g;
|
|
};
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.isString, t = b.isNumeric, s = b.isObject, m = b.Debug.assert, d = b.Debug.notImplemented, a = function() {
|
|
return function(a, b, c, e) {
|
|
"undefined" === typeof e && (e = !1);
|
|
this.name = a;
|
|
this.type = b;
|
|
this.value = c;
|
|
this.optional = e;
|
|
};
|
|
}();
|
|
g.Parameter = a;
|
|
var c = function() {
|
|
function a(b, c, e) {
|
|
var h = b.constantPool, l = b.methods, d = b.classes, p = b.metadata;
|
|
this.holder = e;
|
|
this.name = h.multinames[c.readU30()];
|
|
e = c.readU8();
|
|
this.kind = e & 15;
|
|
this.attributes = e >> 4 & 15;
|
|
m(r.isQName(this.name), "Name must be a QName: " + this.name + ", kind: " + this.kind);
|
|
switch(this.kind) {
|
|
case 0:
|
|
;
|
|
case 6:
|
|
this.slotId = c.readU30();
|
|
this.typeName = h.multinames[c.readU30()];
|
|
b = c.readU30();
|
|
this.value = void 0;
|
|
0 !== b && (this.hasDefaultValue = !0, this.value = h.getValue(c.readU8(), b));
|
|
break;
|
|
case 1:
|
|
;
|
|
case 3:
|
|
;
|
|
case 2:
|
|
this.dispId = c.readU30();
|
|
this.methodInfo = l[c.readU30()];
|
|
this.methodInfo.name = this.name;
|
|
u.attachHolder(this.methodInfo, this.holder);
|
|
this.methodInfo.abc = b;
|
|
break;
|
|
case 4:
|
|
this.slotId = c.readU30();
|
|
m(d, "Classes should be passed down here, I'm guessing whenever classes are being parsed.");
|
|
this.classInfo = d[c.readU30()];
|
|
break;
|
|
case 5:
|
|
m(!1, "Function encountered in the wild, should not happen");
|
|
}
|
|
if (this.attributes & 4) {
|
|
var q, h = 0;
|
|
for (b = c.readU30();h < b;h++) {
|
|
l = p[c.readU30()], "__go_to_definition_help" !== l.name && "__go_to_ctor_definition_help" !== l.name && (q || (q = {}), q[l.name] = l);
|
|
}
|
|
q && (this.isClass() && (this.classInfo.metadata = q), this.metadata = q);
|
|
}
|
|
}
|
|
a.prototype.isSlot = function() {
|
|
return 0 === this.kind;
|
|
};
|
|
a.prototype.isConst = function() {
|
|
return 6 === this.kind;
|
|
};
|
|
a.prototype.isMethod = function() {
|
|
return 1 === this.kind;
|
|
};
|
|
a.prototype.isClass = function() {
|
|
return 4 === this.kind;
|
|
};
|
|
a.prototype.isGetter = function() {
|
|
return 2 === this.kind;
|
|
};
|
|
a.prototype.isSetter = function() {
|
|
return 3 === this.kind;
|
|
};
|
|
a.prototype.isAccessor = function() {
|
|
return this.isGetter() || this.isSetter();
|
|
};
|
|
a.prototype.isMethodOrAccessor = function() {
|
|
return this.isMethod() || this.isGetter() || this.isSetter();
|
|
};
|
|
a.prototype.isProtected = function() {
|
|
m(r.isQName(this.name));
|
|
return this.name.namespaces[0].isProtected();
|
|
};
|
|
a.prototype.kindName = function() {
|
|
switch(this.kind) {
|
|
case 0:
|
|
return "Slot";
|
|
case 6:
|
|
return "Const";
|
|
case 1:
|
|
return "Method";
|
|
case 3:
|
|
return "Setter";
|
|
case 2:
|
|
return "Getter";
|
|
case 4:
|
|
return "Class";
|
|
case 5:
|
|
return "Function";
|
|
}
|
|
b.Debug.unexpected();
|
|
};
|
|
a.prototype.isOverride = function() {
|
|
return this.attributes & 2;
|
|
};
|
|
a.prototype.isFinal = function() {
|
|
return this.attributes & 1;
|
|
};
|
|
a.prototype.toString = function() {
|
|
var a = b.IntegerUtilities.getFlags(this.attributes, ["final", "override", "metadata"]);
|
|
a && (a += " ");
|
|
a += r.getQualifiedName(this.name);
|
|
switch(this.kind) {
|
|
case 0:
|
|
;
|
|
case 6:
|
|
return a + ", typeName: " + this.typeName + ", slotId: " + this.slotId + ", value: " + this.value;
|
|
case 1:
|
|
;
|
|
case 3:
|
|
;
|
|
case 2:
|
|
return a + ", " + this.kindName() + ": " + this.methodInfo.name;
|
|
case 4:
|
|
return a + ", slotId: " + this.slotId + ", class: " + this.classInfo;
|
|
}
|
|
};
|
|
a.parseTraits = function(b, c, e) {
|
|
for (var h = c.readU30(), l = [], d = 0;d < h;d++) {
|
|
l.push(new a(b, c, e));
|
|
}
|
|
return l;
|
|
};
|
|
return a;
|
|
}();
|
|
g.Trait = c;
|
|
var n = function() {
|
|
return function(a, b, c) {
|
|
this.abc = a;
|
|
this.index = b;
|
|
this.hash = a.hash & 65535 | c | b << 19;
|
|
};
|
|
}();
|
|
g.Info = n;
|
|
var p = function(h) {
|
|
function d(b, c, e) {
|
|
h.call(this, b, c, 131072);
|
|
b = b.constantPool;
|
|
c = e.readU30();
|
|
this.returnType = b.multinames[e.readU30()];
|
|
this.parameters = [];
|
|
for (var l = 0;l < c;l++) {
|
|
this.parameters.push(new a(void 0, b.multinames[e.readU30()], void 0));
|
|
}
|
|
this.debugName = b.strings[e.readU30()];
|
|
this.flags = e.readU8();
|
|
l = 0;
|
|
if (this.flags & 8) {
|
|
for (l = e.readU30(), m(c >= l), l = c - l;l < c;l++) {
|
|
var p = e.readU30();
|
|
this.parameters[l].value = b.getValue(e.readU8(), p);
|
|
this.parameters[l].optional = !0;
|
|
}
|
|
}
|
|
if (this.flags & 128) {
|
|
for (l = 0;l < c;l++) {
|
|
d.parseParameterNames ? this.parameters[l].name = b.strings[e.readU30()] : (e.readU30(), this.parameters[l].name = d._getParameterName(l));
|
|
}
|
|
} else {
|
|
for (l = 0;l < c;l++) {
|
|
this.parameters[l].name = d._getParameterName(l);
|
|
}
|
|
}
|
|
}
|
|
__extends(d, h);
|
|
d._getParameterName = function(a) {
|
|
return 26 > a ? String.fromCharCode(65 + a) : "P" + (a - 26);
|
|
};
|
|
d.prototype.toString = function() {
|
|
var a = b.IntegerUtilities.getFlags(this.flags, "NEED_ARGUMENTS NEED_ACTIVATION NEED_REST HAS_OPTIONAL SET_DXN HAS_PARAM_NAMES".split(" "));
|
|
return(a ? a + " " : "") + this.name;
|
|
};
|
|
d.prototype.hasOptional = function() {
|
|
return!!(this.flags & 8);
|
|
};
|
|
d.prototype.needsActivation = function() {
|
|
return!!(this.flags & 2);
|
|
};
|
|
d.prototype.needsRest = function() {
|
|
return!!(this.flags & 4);
|
|
};
|
|
d.prototype.needsArguments = function() {
|
|
return!!(this.flags & 1);
|
|
};
|
|
d.prototype.isNative = function() {
|
|
return!!(this.flags & 32);
|
|
};
|
|
d.prototype.isClassMember = function() {
|
|
return this.holder instanceof q;
|
|
};
|
|
d.prototype.isInstanceMember = function() {
|
|
return this.holder instanceof e;
|
|
};
|
|
d.prototype.isScriptMember = function() {
|
|
return this.holder instanceof l;
|
|
};
|
|
d.prototype.hasSetsDxns = function() {
|
|
return!!(this.flags & 64);
|
|
};
|
|
d.parseException = function(a, b) {
|
|
var c = a.constantPool.multinames, c = {start:b.readU30(), end:b.readU30(), target:b.readU30(), typeName:c[b.readU30()], varName:c[b.readU30()]};
|
|
m(!c.typeName || !c.typeName.isRuntime());
|
|
m(!c.varName || c.varName.isQName());
|
|
return c;
|
|
};
|
|
d.parseBody = function(a, b) {
|
|
var e = a.methods, h = b.readU30(), e = e[h];
|
|
e.index = h;
|
|
e.hasBody = !0;
|
|
m(!e.isNative());
|
|
e.maxStack = b.readU30();
|
|
e.localCount = b.readU30();
|
|
e.initScopeDepth = b.readU30();
|
|
e.maxScopeDepth = b.readU30();
|
|
e.code = b.readU8s(b.readU30());
|
|
for (var h = [], l = b.readU30(), p = 0;p < l;++p) {
|
|
h.push(d.parseException(a, b));
|
|
}
|
|
e.exceptions = h;
|
|
e.traits = c.parseTraits(a, b, e);
|
|
};
|
|
d.prototype.hasExceptions = function() {
|
|
return 0 < this.exceptions.length;
|
|
};
|
|
d.parseParameterNames = !1;
|
|
return d;
|
|
}(n);
|
|
g.MethodInfo = p;
|
|
var e = function(a) {
|
|
function e(b, h, l) {
|
|
a.call(this, b, h, 65536);
|
|
this.runtimeId = e.nextID++;
|
|
h = b.constantPool;
|
|
var d = b.methods;
|
|
this.name = h.multinames[l.readU30()];
|
|
m(r.isQName(this.name));
|
|
this.superName = h.multinames[l.readU30()];
|
|
this.flags = l.readU8();
|
|
this.protectedNs = void 0;
|
|
this.flags & 8 && (this.protectedNs = h.namespaces[l.readU30()]);
|
|
var p = l.readU30();
|
|
this.interfaces = [];
|
|
for (var q = 0;q < p;q++) {
|
|
this.interfaces[q] = h.multinames[l.readU30()];
|
|
}
|
|
this.init = d[l.readU30()];
|
|
this.init.isInstanceInitializer = !0;
|
|
this.init.name = this.name;
|
|
u.attachHolder(this.init, this);
|
|
this.traits = c.parseTraits(b, l, this);
|
|
}
|
|
__extends(e, a);
|
|
e.prototype.toString = function() {
|
|
var a = b.IntegerUtilities.getFlags(this.flags & 8, ["sealed", "final", "interface", "protected"]), a = (a ? a + " " : "") + this.name;
|
|
this.superName && (a += " extends " + this.superName);
|
|
return a;
|
|
};
|
|
e.prototype.isFinal = function() {
|
|
return!!(this.flags & 2);
|
|
};
|
|
e.prototype.isSealed = function() {
|
|
return!!(this.flags & 1);
|
|
};
|
|
e.prototype.isInterface = function() {
|
|
return!!(this.flags & 4);
|
|
};
|
|
e.nextID = 1;
|
|
return e;
|
|
}(n);
|
|
g.InstanceInfo = e;
|
|
(function(a) {
|
|
a[a.AbcMask = 65535] = "AbcMask";
|
|
a[a.KindMask = 458752] = "KindMask";
|
|
a[a.ClassInfo = 0] = "ClassInfo";
|
|
a[a.InstanceInfo = 65536] = "InstanceInfo";
|
|
a[a.MethodInfo = 131072] = "MethodInfo";
|
|
a[a.ScriptInfo = 196608] = "ScriptInfo";
|
|
a[a.NamespaceSet = 262144] = "NamespaceSet";
|
|
a[a.IndexOffset = 19] = "IndexOffset";
|
|
})(g.Hashes || (g.Hashes = {}));
|
|
var q = function(a) {
|
|
function b(e, h, l) {
|
|
a.call(this, e, h, 0);
|
|
this.runtimeId = b.nextID++;
|
|
this.init = e.methods[l.readU30()];
|
|
this.init.isClassInitializer = !0;
|
|
u.attachHolder(this.init, this);
|
|
this.traits = c.parseTraits(e, l, this);
|
|
this.instanceInfo = e.instances[h];
|
|
this.instanceInfo.classInfo = this;
|
|
this.defaultValue = b._getDefaultValue(this.instanceInfo.name);
|
|
}
|
|
__extends(b, a);
|
|
b._getDefaultValue = function(a) {
|
|
return r.getQualifiedName(a) === r.Int || r.getQualifiedName(a) === r.Uint ? 0 : r.getQualifiedName(a) === r.Number ? NaN : r.getQualifiedName(a) === r.Boolean ? !1 : null;
|
|
};
|
|
b.prototype.toString = function() {
|
|
return this.instanceInfo.name.toString();
|
|
};
|
|
b.nextID = 1;
|
|
return b;
|
|
}(n);
|
|
g.ClassInfo = q;
|
|
var l = function(a) {
|
|
function b(e, h, l) {
|
|
a.call(this, e, h, 196608);
|
|
this.runtimeId = q.nextID++;
|
|
this.name = e.name + "$script" + h;
|
|
this.init = e.methods[l.readU30()];
|
|
this.init.isScriptInitializer = !0;
|
|
u.attachHolder(this.init, this);
|
|
this.traits = c.parseTraits(e, l, this);
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "entryPoint", {get:function() {
|
|
return this.init;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.toString = function() {
|
|
return this.name;
|
|
};
|
|
b.nextID = 1;
|
|
return b;
|
|
}(n);
|
|
g.ScriptInfo = l;
|
|
var u = function() {
|
|
function a(c, d, r) {
|
|
"undefined" === typeof r && (r = 0);
|
|
k.enterTimeline("Parse ABC");
|
|
this.name = d;
|
|
this.env = {};
|
|
k.enterTimeline("Adler");
|
|
d = b.HashUtilities.hashBytesTo32BitsAdler(c, 0, c.length);
|
|
k.leaveTimeline();
|
|
r ? (this.hash = r, m(r === d)) : this.hash = d;
|
|
d = new g.AbcStream(c);
|
|
a._checkMagic(d);
|
|
k.enterTimeline("Parse constantPool");
|
|
this.constantPool = new x(d, this);
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Parse Method Infos");
|
|
this.methods = [];
|
|
c = d.readU30();
|
|
for (r = 0;r < c;++r) {
|
|
this.methods.push(new p(this, r, d));
|
|
}
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Parse MetaData Infos");
|
|
this.metadata = [];
|
|
c = d.readU30();
|
|
for (r = 0;r < c;++r) {
|
|
this.metadata.push(new h(this, d));
|
|
}
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Parse Instance Infos");
|
|
this.instances = [];
|
|
c = d.readU30();
|
|
for (r = 0;r < c;++r) {
|
|
this.instances.push(new e(this, r, d));
|
|
}
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Parse Class Infos");
|
|
this.classes = [];
|
|
for (r = 0;r < c;++r) {
|
|
this.classes.push(new q(this, r, d));
|
|
}
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Parse Script Infos");
|
|
this.scripts = [];
|
|
c = d.readU30();
|
|
for (r = 0;r < c;++r) {
|
|
this.scripts.push(new l(this, r, d));
|
|
}
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Parse Method Body Info");
|
|
c = d.readU30();
|
|
for (r = 0;r < c;++r) {
|
|
p.parseBody(this, d);
|
|
}
|
|
k.leaveTimeline();
|
|
k.leaveTimeline();
|
|
}
|
|
a._checkMagic = function(a) {
|
|
a = a.readWord();
|
|
if (3014671 > a) {
|
|
throw Error("Invalid ABC File (magic = " + Number(a).toString(16) + ")");
|
|
}
|
|
};
|
|
Object.defineProperty(a.prototype, "lastScript", {get:function() {
|
|
m(0 < this.scripts.length);
|
|
return this.scripts[this.scripts.length - 1];
|
|
}, enumerable:!0, configurable:!0});
|
|
a.attachHolder = function(a, b) {
|
|
m(!a.holder);
|
|
a.holder = b;
|
|
};
|
|
a.prototype.toString = function() {
|
|
return this.name;
|
|
};
|
|
a.prototype.getConstant = function(a) {
|
|
m((this.hash & 65535) === (a & 65535));
|
|
var b = a >> 19;
|
|
switch(a & 458752) {
|
|
case 0:
|
|
return this.classes[b];
|
|
case 65536:
|
|
return this.instances[b];
|
|
case 131072:
|
|
return this.methods[b];
|
|
case 196608:
|
|
return this.scripts[b];
|
|
case 262144:
|
|
return this.constantPool.namespaceSets[b];
|
|
default:
|
|
d("Kind");
|
|
}
|
|
};
|
|
return a;
|
|
}();
|
|
g.AbcFile = u;
|
|
var w = function() {
|
|
function a(b, c, e, h) {
|
|
"undefined" === typeof c && (c = "");
|
|
void 0 === c && (c = "");
|
|
this.kind = b;
|
|
this.uri = c;
|
|
this.prefix = e;
|
|
this.qualifiedName = void 0;
|
|
this._buildNamespace(h);
|
|
}
|
|
a.prototype._buildNamespace = function(b) {
|
|
22 === this.kind && (this.kind = 8);
|
|
this.isPublic() && this.uri ? (b = this.uri.length - 1, this.uri.charCodeAt(b) > a._MIN_API_MARK && (m(!1, "What's this code for?"), this.uri = this.uri.substring(0, b - 1))) : this.isUnique() && (m(void 0 !== b), this.uri = "private " + b);
|
|
26 === this.kind && (this.uri = "*");
|
|
this.qualifiedName = a._qualifyNamespace(this.kind, this.uri, this.prefix ? this.prefix : "");
|
|
};
|
|
a._hashNamespace = function(c, e, h) {
|
|
var l = new Int32Array(1 + e.length + h.length), d = 0;
|
|
l[d++] = c;
|
|
var p = a._knownURIs.indexOf(e);
|
|
if (0 <= p) {
|
|
return c << 2 | p;
|
|
}
|
|
for (c = 0;c < e.length;c++) {
|
|
l[d++] = e.charCodeAt(c);
|
|
}
|
|
for (c = 0;c < h.length;c++) {
|
|
l[d++] = h.charCodeAt(c);
|
|
}
|
|
return b.HashUtilities.hashBytesTo32BitsMD5(l, 0, d);
|
|
};
|
|
a._qualifyNamespace = function(c, e, h) {
|
|
var l = c + e, d = a._mangledNamespaceCache[l];
|
|
if (d) {
|
|
return d;
|
|
}
|
|
d = b.StringUtilities.variableLengthEncodeInt32(a._hashNamespace(c, e, h));
|
|
a._mangledNamespaceMap[d] = {kind:c, uri:e, prefix:h};
|
|
return a._mangledNamespaceCache[l] = d;
|
|
};
|
|
a.fromQualifiedName = function(c) {
|
|
var e = b.StringUtilities.fromEncoding(c[0]);
|
|
c = a._mangledNamespaceMap[c.substring(0, e + 1)];
|
|
return new a(c.kind, c.uri, c.prefix);
|
|
};
|
|
a.kindFromString = function(b) {
|
|
for (var c in a._kinds) {
|
|
if (a._kinds[c] === b) {
|
|
return c;
|
|
}
|
|
}
|
|
m(!1, "Cannot find kind " + b);
|
|
return NaN;
|
|
};
|
|
a.createNamespace = function(b, c) {
|
|
"undefined" === typeof c && (c = void 0);
|
|
return new a(8, b, c);
|
|
};
|
|
a.parse = function(b, c, e) {
|
|
var h = c.readU8();
|
|
b = b.strings[c.readU30()];
|
|
return new a(h, b, void 0, e);
|
|
};
|
|
a.prototype.isPublic = function() {
|
|
return 8 === this.kind || 22 === this.kind;
|
|
};
|
|
a.prototype.isProtected = function() {
|
|
return 24 === this.kind || 26 === this.kind;
|
|
};
|
|
a.prototype.isPrivate = function() {
|
|
return 5 === this.kind;
|
|
};
|
|
a.prototype.isPackageInternal = function() {
|
|
return 23 === this.kind;
|
|
};
|
|
a.prototype.isUnique = function() {
|
|
return 5 === this.kind && !this.uri;
|
|
};
|
|
a.prototype.isDynamic = function() {
|
|
return this.isPublic() && !this.uri;
|
|
};
|
|
a.prototype.getURI = function() {
|
|
return this.uri;
|
|
};
|
|
a.prototype.toString = function() {
|
|
return a._kinds[this.kind] + (this.uri ? " " + this.uri : "");
|
|
};
|
|
a.prototype.clone = function() {
|
|
var b = Object.create(a.prototype);
|
|
b.kind = this.kind;
|
|
b.uri = this.uri;
|
|
b.prefix = this.prefix;
|
|
b.qualifiedName = this.qualifiedName;
|
|
return b;
|
|
};
|
|
a.prototype.isEqualTo = function(a) {
|
|
return this.qualifiedName === a.qualifiedName;
|
|
};
|
|
a.prototype.inNamespaceSet = function(a) {
|
|
for (var b = 0;b < a.length;b++) {
|
|
if (a[b].qualifiedName === this.qualifiedName) {
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
};
|
|
a.prototype.getAccessModifier = function() {
|
|
return a._kinds[this.kind];
|
|
};
|
|
a.prototype.getQualifiedName = function() {
|
|
return this.qualifiedName;
|
|
};
|
|
a.fromSimpleName = function(b) {
|
|
if (b in a._simpleNameCache) {
|
|
return a._simpleNameCache[b];
|
|
}
|
|
var c;
|
|
0 === b.indexOf("[") ? (m("]" === b[b.length - 1]), c = b.substring(1, b.length - 1).split(",")) : c = [b];
|
|
return a._simpleNameCache[b] = c.map(function(b) {
|
|
b = b.trim();
|
|
var c;
|
|
0 < b.indexOf(" ") ? (c = b.substring(0, b.indexOf(" ")).trim(), b = b.substring(b.indexOf(" ") + 1).trim()) : (c = a._kinds, b === c[8] || b === c[23] || b === c[5] || b === c[24] || b === c[25] || b === c[26] ? (c = b, b = "") : c = a._publicPrefix);
|
|
return new a(a.kindFromString(c), b);
|
|
});
|
|
};
|
|
a._publicPrefix = "public";
|
|
a._kinds = function() {
|
|
var c = b.ObjectUtilities.createMap();
|
|
c[8] = a._publicPrefix;
|
|
c[23] = "packageInternal";
|
|
c[5] = "private";
|
|
c[24] = "protected";
|
|
c[25] = "explicit";
|
|
c[26] = "staticProtected";
|
|
return c;
|
|
}();
|
|
a._MIN_API_MARK = 58004;
|
|
a._MAX_API_MARK = 63743;
|
|
a._knownURIs = [""];
|
|
a._mangledNamespaceCache = b.ObjectUtilities.createMap();
|
|
a._mangledNamespaceMap = b.ObjectUtilities.createMap();
|
|
a.PUBLIC = new a(8);
|
|
a.PROTECTED = new a(24);
|
|
a.PROXY = new a(8, "http://www.adobe.com/2006/actionscript/flash/proxy");
|
|
a.VECTOR = new a(8, "__AS3__.vec");
|
|
a.VECTOR_PACKAGE = new a(23, "__AS3__.vec");
|
|
a.BUILTIN = new a(5, "builtin.as$0");
|
|
a._simpleNameCache = b.ObjectUtilities.createMap();
|
|
return a;
|
|
}();
|
|
g.Namespace = w;
|
|
w.prototype = Object.create(w.prototype);
|
|
var r = function() {
|
|
function a(b, c, e) {
|
|
"undefined" === typeof e && (e = 0);
|
|
void 0 !== c && m(null === c || f(c), "Multiname name must be a string. " + c);
|
|
this.runtimeId = a._nextID++;
|
|
this.namespaces = b;
|
|
this.name = c;
|
|
this.flags = e;
|
|
}
|
|
a.parse = function(c, e, h, l, d) {
|
|
var p = 0, r = e.readU8(), q, n = [], x = 0;
|
|
switch(r) {
|
|
case 7:
|
|
;
|
|
case 13:
|
|
(p = e.readU30()) ? n = [c.namespaces[p]] : x &= ~a.RUNTIME_NAME;
|
|
(p = e.readU30()) && (q = c.strings[p]);
|
|
break;
|
|
case 15:
|
|
;
|
|
case 16:
|
|
(p = e.readU30()) ? q = c.strings[p] : x &= ~a.RUNTIME_NAME;
|
|
x |= a.RUNTIME_NAMESPACE;
|
|
break;
|
|
case 17:
|
|
;
|
|
case 18:
|
|
x |= a.RUNTIME_NAMESPACE;
|
|
x |= a.RUNTIME_NAME;
|
|
break;
|
|
case 9:
|
|
;
|
|
case 14:
|
|
(p = e.readU30()) ? q = c.strings[p] : x &= ~a.RUNTIME_NAME;
|
|
p = e.readU30();
|
|
m(0 !== p);
|
|
n = c.namespaceSets[p];
|
|
break;
|
|
case 27:
|
|
;
|
|
case 28:
|
|
x |= a.RUNTIME_NAME;
|
|
p = e.readU30();
|
|
m(0 !== p);
|
|
n = c.namespaceSets[p];
|
|
break;
|
|
case 29:
|
|
return c = e.readU32(), p = e.readU32(), m(1 === p), e = e.readU32(), p = void 0, h[c] && h[e] ? (p = new a(h[c].namespaces, h[c].name, x), p.typeParameter = h[e]) : l.push({index:d, factoryTypeIndex:c, typeParameterIndex:e, flags:x}), p;
|
|
default:
|
|
b.Debug.unexpected();
|
|
}
|
|
switch(r) {
|
|
case 13:
|
|
;
|
|
case 16:
|
|
;
|
|
case 18:
|
|
;
|
|
case 14:
|
|
;
|
|
case 28:
|
|
x |= a.ATTRIBUTE;
|
|
}
|
|
return new a(n, q, x);
|
|
};
|
|
a.isMultiname = function(b) {
|
|
return "number" === typeof b || "string" === typeof b || b instanceof a || b instanceof Number;
|
|
};
|
|
a.needsResolution = function(b) {
|
|
return b instanceof a && 1 < b.namespaces.length;
|
|
};
|
|
a.isQName = function(b) {
|
|
return b instanceof a ? b.namespaces && 1 === b.namespaces.length : !0;
|
|
};
|
|
a.isRuntimeName = function(b) {
|
|
return b instanceof a && b.isRuntimeName();
|
|
};
|
|
a.isRuntimeNamespace = function(b) {
|
|
return b instanceof a && b.isRuntimeNamespace();
|
|
};
|
|
a.isRuntime = function(b) {
|
|
return b instanceof a && b.isRuntimeName() || b.isRuntimeNamespace();
|
|
};
|
|
a.getQualifiedName = function(b) {
|
|
m(a.isQName(b));
|
|
if (b instanceof a) {
|
|
if (void 0 !== b.qualifiedName) {
|
|
return b.qualifiedName;
|
|
}
|
|
var c = String(b.name);
|
|
if (t(c) && b.namespaces[0].isPublic()) {
|
|
return b.qualifiedName = c;
|
|
}
|
|
b = b.qualifiedName = a.qualifyName(b.namespaces[0], c);
|
|
}
|
|
return b;
|
|
};
|
|
a.qualifyName = function(a, c) {
|
|
return b.StringUtilities.concat3("$", a.qualifiedName, c);
|
|
};
|
|
a.stripPublicQualifier = function(a) {
|
|
var b = "$" + w.PUBLIC.qualifiedName;
|
|
return 0 !== a.indexOf(b) ? void 0 : a.substring(b.length);
|
|
};
|
|
a.fromQualifiedName = function(b) {
|
|
if (b instanceof a) {
|
|
return b;
|
|
}
|
|
if (t(b)) {
|
|
return new a([w.PUBLIC], b);
|
|
}
|
|
if ("$" === b[0]) {
|
|
var c = w.fromQualifiedName(b.substring(1));
|
|
return new a([c], b.substring(1 + c.qualifiedName.length));
|
|
}
|
|
};
|
|
a.getNameFromPublicQualifiedName = function(b) {
|
|
b = a.fromQualifiedName(b);
|
|
m(b.getNamespace().isPublic());
|
|
return b.name;
|
|
};
|
|
a.getFullQualifiedName = function(b) {
|
|
var c = a.getQualifiedName(b);
|
|
b instanceof a && b.typeParameter && (c += "$" + a.getFullQualifiedName(b.typeParameter));
|
|
return c;
|
|
};
|
|
a.getPublicQualifiedName = function(c) {
|
|
var e;
|
|
if ("string" === typeof c && (e = a._publicQualifiedNameCache[c])) {
|
|
return e;
|
|
}
|
|
if (t(c)) {
|
|
return b.toNumber(c);
|
|
}
|
|
if (null !== c && s(c)) {
|
|
return c;
|
|
}
|
|
e = a.qualifyName(w.PUBLIC, c);
|
|
"string" === typeof c && (a._publicQualifiedNameCache[c] = e);
|
|
return e;
|
|
};
|
|
a.isPublicQualifiedName = function(a) {
|
|
return "number" === typeof a || t(a) || 1 === a.indexOf(w.PUBLIC.qualifiedName);
|
|
};
|
|
a.getAccessModifier = function(b) {
|
|
m(a.isQName(b));
|
|
if ("number" === typeof b || "string" === typeof b || b instanceof Number) {
|
|
return "public";
|
|
}
|
|
m(b instanceof a);
|
|
return b.namespaces[0].getAccessModifier();
|
|
};
|
|
a.isNumeric = function(b) {
|
|
return "number" === typeof b ? !0 : "string" === typeof b ? t(b) : !isNaN(parseInt(a.getName(b), 10));
|
|
};
|
|
a.getName = function(b) {
|
|
m(b instanceof a);
|
|
m(!b.isRuntimeName());
|
|
return b.getName();
|
|
};
|
|
a.isAnyName = function(a) {
|
|
return "object" === typeof a && !a.isRuntimeName() && !a.name;
|
|
};
|
|
a.fromSimpleName = function(b) {
|
|
m(b);
|
|
if (b in a._simpleNameCache) {
|
|
return a._simpleNameCache[b];
|
|
}
|
|
var c, e;
|
|
c = b.lastIndexOf(".");
|
|
0 >= c && (c = b.lastIndexOf(" "));
|
|
0 < c && c < b.length - 1 ? (e = b.substring(c + 1).trim(), c = b.substring(0, c).trim()) : (e = b, c = "");
|
|
return a._simpleNameCache[b] = new a(w.fromSimpleName(c), e);
|
|
};
|
|
a.prototype.getQName = function(b) {
|
|
m(0 <= b && b < this.namespaces.length);
|
|
this._qualifiedNameCache || (this._qualifiedNameCache = []);
|
|
var c = this._qualifiedNameCache[b];
|
|
c || (c = this._qualifiedNameCache[b] = new a([this.namespaces[b]], this.name, this.flags));
|
|
return c;
|
|
};
|
|
a.prototype.hasQName = function(b) {
|
|
m(b instanceof a);
|
|
if (this.name !== b.name) {
|
|
return!1;
|
|
}
|
|
for (var c = 0;c < this.namespaces.length;c++) {
|
|
if (this.namespaces[c].isEqualTo(b.namespaces[0])) {
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
};
|
|
a.prototype.isAttribute = function() {
|
|
return this.flags & a.ATTRIBUTE;
|
|
};
|
|
a.prototype.isAnyName = function() {
|
|
return a.isAnyName(this);
|
|
};
|
|
a.prototype.isAnyNamespace = function() {
|
|
return!this.isRuntimeNamespace() && (0 === this.namespaces.length || this.isAnyName() && 1 !== this.namespaces.length);
|
|
};
|
|
a.prototype.isRuntimeName = function() {
|
|
return!!(this.flags & a.RUNTIME_NAME);
|
|
};
|
|
a.prototype.isRuntimeNamespace = function() {
|
|
return!!(this.flags & a.RUNTIME_NAMESPACE);
|
|
};
|
|
a.prototype.isRuntime = function() {
|
|
return!!(this.flags & (a.RUNTIME_NAME | a.RUNTIME_NAMESPACE));
|
|
};
|
|
a.prototype.isQName = function() {
|
|
return 1 === this.namespaces.length && !this.isAnyName();
|
|
};
|
|
a.prototype.hasTypeParameter = function() {
|
|
return!!this.typeParameter;
|
|
};
|
|
a.prototype.getName = function() {
|
|
return this.name;
|
|
};
|
|
a.prototype.getOriginalName = function() {
|
|
m(this.isQName());
|
|
var a = this.namespaces[0].uri;
|
|
a && (a += ".");
|
|
return a + this.name;
|
|
};
|
|
a.prototype.getNamespace = function() {
|
|
m(!this.isRuntimeNamespace());
|
|
m(1 === this.namespaces.length);
|
|
return this.namespaces[0];
|
|
};
|
|
a.prototype.nameToString = function() {
|
|
if (this.isAnyName()) {
|
|
return "*";
|
|
}
|
|
var a = this.getName();
|
|
return this.isRuntimeName() ? "[]" : a;
|
|
};
|
|
a.prototype.hasObjectName = function() {
|
|
return "object" === typeof this.name;
|
|
};
|
|
a.prototype.toString = function() {
|
|
var a = this.isAttribute() ? "@" : "";
|
|
if (this.isAnyNamespace()) {
|
|
a += "*::" + this.nameToString();
|
|
} else {
|
|
if (this.isRuntimeNamespace()) {
|
|
a += "[]::" + this.nameToString();
|
|
} else {
|
|
if (1 === this.namespaces.length && this.isQName()) {
|
|
a += this.namespaces[0].toString() + "::", a += this.nameToString();
|
|
} else {
|
|
for (var a = a + "{", b = 0, c = this.namespaces.length;b < c;b++) {
|
|
a += this.namespaces[b].toString(), b + 1 < c && (a += ",");
|
|
}
|
|
a += "}::" + this.nameToString();
|
|
}
|
|
}
|
|
}
|
|
this.hasTypeParameter() && (a += "<" + this.typeParameter.toString() + ">");
|
|
return a;
|
|
};
|
|
a.ATTRIBUTE = 1;
|
|
a.RUNTIME_NAMESPACE = 2;
|
|
a.RUNTIME_NAME = 4;
|
|
a._nextID = 0;
|
|
a._publicQualifiedNameCache = b.ObjectUtilities.createMap();
|
|
a._simpleNameCache = b.ObjectUtilities.createMap();
|
|
a.Int = a.getPublicQualifiedName("int");
|
|
a.Uint = a.getPublicQualifiedName("uint");
|
|
a.Class = a.getPublicQualifiedName("Class");
|
|
a.Array = a.getPublicQualifiedName("Array");
|
|
a.Object = a.getPublicQualifiedName("Object");
|
|
a.String = a.getPublicQualifiedName("String");
|
|
a.Number = a.getPublicQualifiedName("Number");
|
|
a.Boolean = a.getPublicQualifiedName("Boolean");
|
|
a.Function = a.getPublicQualifiedName("Function");
|
|
a.XML = a.getPublicQualifiedName("XML");
|
|
a.XMLList = a.getPublicQualifiedName("XMLList");
|
|
a.TO_STRING = a.getPublicQualifiedName("toString");
|
|
a.VALUE_OF = a.getPublicQualifiedName("valueOf");
|
|
a.TEMPORARY = new a([], "");
|
|
return a;
|
|
}();
|
|
g.Multiname = r;
|
|
var h = function() {
|
|
function a(b, c) {
|
|
for (var e = b.constantPool.strings, h = this.name = e[c.readU30()], l = c.readU30(), d = [], p = [], r = 0;r < l;r++) {
|
|
d[r] = e[c.readU30()];
|
|
}
|
|
for (r = 0;r < l;r++) {
|
|
var q = d[r];
|
|
p[r] = {key:q, value:e[c.readU30()]};
|
|
q && "native" === h && (m(!this.hasOwnProperty(q)), this[q] = p[r].value);
|
|
}
|
|
this.value = p;
|
|
}
|
|
a.prototype.toString = function() {
|
|
return "[" + this.name + "]";
|
|
};
|
|
return a;
|
|
}();
|
|
g.MetaDataInfo = h;
|
|
(function(a) {
|
|
a[a.Undefined = 0] = "Undefined";
|
|
a[a.Utf8 = 1] = "Utf8";
|
|
a[a.Float = 2] = "Float";
|
|
a[a.Int = 3] = "Int";
|
|
a[a.UInt = 4] = "UInt";
|
|
a[a.PrivateNs = 5] = "PrivateNs";
|
|
a[a.Double = 6] = "Double";
|
|
a[a.QName = 7] = "QName";
|
|
a[a.Namespace = 8] = "Namespace";
|
|
a[a.Multiname = 9] = "Multiname";
|
|
a[a.False = 10] = "False";
|
|
a[a.True = 11] = "True";
|
|
a[a.Null = 12] = "Null";
|
|
a[a.QNameA = 13] = "QNameA";
|
|
a[a.MultinameA = 14] = "MultinameA";
|
|
a[a.RTQName = 15] = "RTQName";
|
|
a[a.RTQNameA = 16] = "RTQNameA";
|
|
a[a.RTQNameL = 17] = "RTQNameL";
|
|
a[a.RTQNameLA = 18] = "RTQNameLA";
|
|
a[a.NameL = 19] = "NameL";
|
|
a[a.NameLA = 20] = "NameLA";
|
|
a[a.NamespaceSet = 21] = "NamespaceSet";
|
|
a[a.PackageNamespace = 22] = "PackageNamespace";
|
|
a[a.PackageInternalNs = 23] = "PackageInternalNs";
|
|
a[a.ProtectedNamespace = 24] = "ProtectedNamespace";
|
|
a[a.ExplicitNamespace = 25] = "ExplicitNamespace";
|
|
a[a.StaticProtectedNs = 26] = "StaticProtectedNs";
|
|
a[a.MultinameL = 27] = "MultinameL";
|
|
a[a.MultinameLA = 28] = "MultinameLA";
|
|
a[a.TypeName = 29] = "TypeName";
|
|
a[a.ClassSealed = 1] = "ClassSealed";
|
|
a[a.ClassFinal = 2] = "ClassFinal";
|
|
a[a.ClassInterface = 4] = "ClassInterface";
|
|
a[a.ClassProtectedNs = 8] = "ClassProtectedNs";
|
|
})(g.CONSTANT || (g.CONSTANT = {}));
|
|
(function(a) {
|
|
a[a.Arguments = 1] = "Arguments";
|
|
a[a.Activation = 2] = "Activation";
|
|
a[a.Needrest = 4] = "Needrest";
|
|
a[a.HasOptional = 8] = "HasOptional";
|
|
a[a.IgnoreRest = 16] = "IgnoreRest";
|
|
a[a.Native = 32] = "Native";
|
|
a[a.Setsdxns = 64] = "Setsdxns";
|
|
a[a.HasParamNames = 128] = "HasParamNames";
|
|
})(g.METHOD || (g.METHOD = {}));
|
|
(function(a) {
|
|
a[a.Slot = 0] = "Slot";
|
|
a[a.Method = 1] = "Method";
|
|
a[a.Getter = 2] = "Getter";
|
|
a[a.Setter = 3] = "Setter";
|
|
a[a.Class = 4] = "Class";
|
|
a[a.Function = 5] = "Function";
|
|
a[a.Const = 6] = "Const";
|
|
})(g.TRAIT || (g.TRAIT = {}));
|
|
(function(a) {
|
|
a[a.Final = 1] = "Final";
|
|
a[a.Override = 2] = "Override";
|
|
a[a.Metadata = 4] = "Metadata";
|
|
})(g.ATTR || (g.ATTR = {}));
|
|
(function(a) {
|
|
a[a.CASEINSENSITIVE = 1] = "CASEINSENSITIVE";
|
|
a[a.DESCENDING = 2] = "DESCENDING";
|
|
a[a.UNIQUESORT = 4] = "UNIQUESORT";
|
|
a[a.RETURNINDEXEDARRAY = 8] = "RETURNINDEXEDARRAY";
|
|
a[a.NUMERIC = 16] = "NUMERIC";
|
|
})(g.SORT || (g.SORT = {}));
|
|
var x = function() {
|
|
function a(b, c) {
|
|
var e, h = [0];
|
|
e = b.readU30();
|
|
for (var l = 1;l < e;++l) {
|
|
h.push(b.readS32());
|
|
}
|
|
var d = [0];
|
|
e = b.readU30();
|
|
for (l = 1;l < e;++l) {
|
|
d.push(b.readU32());
|
|
}
|
|
var p = [NaN];
|
|
e = b.readU30();
|
|
for (l = 1;l < e;++l) {
|
|
p.push(b.readDouble());
|
|
}
|
|
k.enterTimeline("Parse Strings");
|
|
var q = [""];
|
|
e = b.readU30();
|
|
for (l = 1;l < e;++l) {
|
|
q.push(b.readUTFString(b.readU30()));
|
|
}
|
|
k.leaveTimeline();
|
|
this.ints = h;
|
|
this.uints = d;
|
|
this.doubles = p;
|
|
this.strings = q;
|
|
k.enterTimeline("Parse Namespaces");
|
|
h = [void 0];
|
|
e = b.readU30();
|
|
for (l = 1;l < e;++l) {
|
|
h.push(w.parse(this, b, c.hash + l));
|
|
}
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Parse Namespace Sets");
|
|
d = [void 0];
|
|
e = b.readU30();
|
|
for (l = 1;l < e;++l) {
|
|
p = b.readU30();
|
|
q = [];
|
|
q.runtimeId = a._nextNamespaceSetID++;
|
|
q.hash = c.hash & 65535 | 262144 | l << 19;
|
|
for (var n = 0;n < p;++n) {
|
|
q.push(h[b.readU30()]);
|
|
}
|
|
d.push(q);
|
|
}
|
|
k.leaveTimeline();
|
|
this.namespaces = h;
|
|
this.namespaceSets = d;
|
|
k.enterTimeline("Parse Multinames");
|
|
h = [void 0];
|
|
d = [];
|
|
e = b.readU30();
|
|
for (l = 1;l < e;++l) {
|
|
h.push(r.parse(this, b, h, d, l));
|
|
}
|
|
for (l = 0;l < d.length;l++) {
|
|
e = d[l], q = h[e.factoryTypeIndex], p = h[e.typeParameterIndex], m(q && p), q = new r(q.namespaces, q.name, e.flags), q.typeParameter = p, h[e.index] = q;
|
|
}
|
|
k.leaveTimeline();
|
|
this.multinames = h;
|
|
}
|
|
a.prototype.getValue = function(a, c) {
|
|
switch(a) {
|
|
case 3:
|
|
return this.ints[c];
|
|
case 4:
|
|
return this.uints[c];
|
|
case 6:
|
|
return this.doubles[c];
|
|
case 1:
|
|
return this.strings[c];
|
|
case 11:
|
|
return!0;
|
|
case 10:
|
|
return!1;
|
|
case 12:
|
|
return null;
|
|
case 0:
|
|
break;
|
|
case 8:
|
|
;
|
|
case 23:
|
|
return this.namespaces[c];
|
|
case 7:
|
|
;
|
|
case 14:
|
|
;
|
|
case 15:
|
|
;
|
|
case 16:
|
|
;
|
|
case 17:
|
|
;
|
|
case 18:
|
|
;
|
|
case 19:
|
|
;
|
|
case 20:
|
|
return this.multinames[c];
|
|
case 2:
|
|
b.Debug.warning("TODO: CONSTANT.Float may be deprecated?");
|
|
break;
|
|
default:
|
|
m(!1, "Not Implemented Kind " + a);
|
|
}
|
|
};
|
|
a._nextNamespaceSetID = 1;
|
|
return a;
|
|
}();
|
|
g.ConstantPool = x;
|
|
})(k.ABC || (k.ABC = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(a, b, c, l) {
|
|
"undefined" === typeof l && (l = null);
|
|
0 !== c.length && (a.enter(b + " {"), c.forEach(function(b, c) {
|
|
b.trace(a, l);
|
|
}), a.leave("}"));
|
|
}
|
|
function k(a, b, c) {
|
|
var l;
|
|
"undefined" === typeof l && (l = !1);
|
|
var n = c.position, f = "";
|
|
null === a.operands ? f = "null" : a.operands.forEach(function(l, h) {
|
|
var n = f, u;
|
|
a: {
|
|
u = 0;
|
|
switch(l.size) {
|
|
case "s08":
|
|
u = c.readS8();
|
|
break;
|
|
case "u08":
|
|
u = c.readU8();
|
|
break;
|
|
case "s16":
|
|
u = c.readS16();
|
|
break;
|
|
case "s24":
|
|
u = c.readS24();
|
|
break;
|
|
case "u30":
|
|
u = c.readU30();
|
|
break;
|
|
case "u32":
|
|
u = c.readU32();
|
|
break;
|
|
default:
|
|
d(!1);
|
|
}
|
|
var g = "";
|
|
switch(l.type) {
|
|
case "":
|
|
break;
|
|
case "I":
|
|
g = b.constantPool.ints[u];
|
|
break;
|
|
case "U":
|
|
g = b.constantPool.uints[u];
|
|
break;
|
|
case "D":
|
|
g = b.constantPool.doubles[u];
|
|
break;
|
|
case "S":
|
|
g = b.constantPool.strings[u];
|
|
break;
|
|
case "N":
|
|
g = b.constantPool.namespaces[u];
|
|
break;
|
|
case "CI":
|
|
g = b.classes[u];
|
|
break;
|
|
case "M":
|
|
u = b.constantPool.multinames[u];
|
|
break a;
|
|
default:
|
|
g = "?";
|
|
}
|
|
u = l.name + ":" + u + ("" === g ? "" : " (" + g + ")");
|
|
}
|
|
f = n + u;
|
|
h < a.operands.length - 1 && (f += ", ");
|
|
});
|
|
l && c.seek(n);
|
|
return f;
|
|
}
|
|
function s(a, b) {
|
|
var c = new n(a);
|
|
b.scripts.forEach(function(a) {
|
|
c.traceTraits(a.traits);
|
|
});
|
|
}
|
|
function m(a, c) {
|
|
var q = new b.Metrics.Counter(!0), l = new b.Metrics.Counter(!0), n = new b.Metrics.Counter(!0), f = new b.Metrics.Counter(!0), r = {}, h = {}, x = {};
|
|
c.classes.forEach(function(a) {
|
|
r[a.instanceInfo.name.name] = !0;
|
|
});
|
|
c.scripts.forEach(function(a) {
|
|
a.traits.forEach(function(a) {
|
|
if (a.isClass()) {
|
|
var b = a.classInfo.instanceInfo.superName ? a.classInfo.instanceInfo.superName.name : "?";
|
|
b in r || l.count(b);
|
|
a.classInfo.traits.forEach(function(a) {
|
|
a.isMethod() ? h[a.name.name] = !0 : x[a.name.name] = !0;
|
|
});
|
|
a.classInfo.instanceInfo.traits.forEach(function(a) {
|
|
!a.isMethod() || a.attributes & 2 ? x[a.name.name] = !0 : h[a.name.name] = !0;
|
|
});
|
|
}
|
|
});
|
|
});
|
|
var m = new b.Metrics.Counter(!0);
|
|
c.methods.forEach(function(a) {
|
|
function l(a) {
|
|
var b = 0;
|
|
switch(a.size) {
|
|
case "s08":
|
|
b = p.readS8();
|
|
break;
|
|
case "u08":
|
|
b = p.readU8();
|
|
break;
|
|
case "s16":
|
|
b = p.readS16();
|
|
break;
|
|
case "s24":
|
|
b = p.readS24();
|
|
break;
|
|
case "u30":
|
|
b = p.readU30();
|
|
break;
|
|
case "u32":
|
|
b = p.readU32();
|
|
break;
|
|
default:
|
|
d(!1);
|
|
}
|
|
var h = "";
|
|
switch(a.type) {
|
|
case "":
|
|
break;
|
|
case "I":
|
|
h = c.constantPool.ints[b];
|
|
break;
|
|
case "U":
|
|
h = c.constantPool.uints[b];
|
|
break;
|
|
case "D":
|
|
h = c.constantPool.doubles[b];
|
|
break;
|
|
case "S":
|
|
h = c.constantPool.strings[b];
|
|
break;
|
|
case "N":
|
|
h = c.constantPool.namespaces[b];
|
|
break;
|
|
case "CI":
|
|
h = c.classes[b];
|
|
break;
|
|
case "M":
|
|
h = c.constantPool.multinames[b];
|
|
break;
|
|
default:
|
|
h = "?";
|
|
}
|
|
return h;
|
|
}
|
|
if (a.code) {
|
|
for (var p = new g.AbcStream(a.code);0 < p.remaining();) {
|
|
a = p.readU8();
|
|
var k = b.AVM2.opcodeTable[a], s = null;
|
|
if (k) {
|
|
switch(m.count(k.name), k.operands && (s = k.operands.map(l)), a) {
|
|
case 65:
|
|
;
|
|
case 67:
|
|
continue;
|
|
case 70:
|
|
;
|
|
case 76:
|
|
;
|
|
case 79:
|
|
;
|
|
case 68:
|
|
;
|
|
case 69:
|
|
;
|
|
case 78:
|
|
!s[0] || s[0].name in h || n.count(s[0].name);
|
|
break;
|
|
case 74:
|
|
!s[0] || s[0].name in r || q.count(s[0].name);
|
|
break;
|
|
case 102:
|
|
;
|
|
case 97:
|
|
!s[0] || s[0].name in x || f.count(s[0].name);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
a.writeLn(JSON.stringify({definedClasses:r, definedMethods:h, definedProperties:x, libraryClasses:q.counts, librarySuperClasses:l.counts, libraryMethods:n.counts, libraryProperties:f.counts, operations:m.counts}, null, 2));
|
|
}
|
|
var d = b.Debug.assert, a = b.Debug.notImplemented, c = new b.Options.Option("f", "filter", "string", "SpciMsmNtu", "[S]ource, constant[p]ool, [c]lasses, [i]nstances, [M]etadata, [s]cripts, [m]ethods, multi[N]ames, S[t]atistics, [u]tf");
|
|
g.AbcFile.prototype.trace = function(a) {
|
|
0 <= c.value.indexOf("p") && this.constantPool.trace(a);
|
|
0 <= c.value.indexOf("N") && a.writeArray(this.constantPool.multinames, null, !0);
|
|
0 <= c.value.indexOf("c") && f(a, "classes", this.classes);
|
|
0 <= c.value.indexOf("i") && f(a, "instances", this.instances);
|
|
0 <= c.value.indexOf("M") && f(a, "metadata", this.metadata);
|
|
0 <= c.value.indexOf("s") && f(a, "scripts", this.scripts);
|
|
0 <= c.value.indexOf("m") && f(a, "methods", this.methods, this);
|
|
0 <= c.value.indexOf("S") && s(a, this);
|
|
0 <= c.value.indexOf("t") && m(a, this);
|
|
};
|
|
g.ConstantPool.prototype.trace = function(a) {
|
|
a.enter("constantPool {");
|
|
for (var b in this) {
|
|
"namespaces" === b ? (a.enter("namespaces {"), this.namespaces.forEach(function(b, c) {
|
|
a.writeLn(("" + c).padRight(" ", 3) + (b ? b.toString() : "*"));
|
|
}), a.leave("}")) : this[b] instanceof Array && (a.enter(b + " " + this[b].length + " {"), a.writeArray(this[b]), a.leave("}"));
|
|
}
|
|
a.leave("}");
|
|
};
|
|
g.ClassInfo.prototype.trace = function(a) {
|
|
a.enter("class " + this + " {");
|
|
f(a, "traits", this.traits);
|
|
a.leave("}");
|
|
};
|
|
g.MetaDataInfo.prototype.trace = function(a) {
|
|
a.enter(this + " {");
|
|
this.value.forEach(function(b) {
|
|
a.writeLn((b.key ? b.key + ": " : "") + '"' + b.value + '"');
|
|
});
|
|
a.leave("}");
|
|
};
|
|
g.InstanceInfo.prototype.trace = function(a) {
|
|
a.enter("instance " + this + " {");
|
|
f(a, "traits", this.traits);
|
|
a.leave("}");
|
|
};
|
|
g.ScriptInfo.prototype.trace = function(a) {
|
|
a.enter("script " + this + " {");
|
|
f(a, "traits", this.traits);
|
|
a.leave("}");
|
|
};
|
|
g.Trait.prototype.trace = function(a) {
|
|
if (this.metadata) {
|
|
for (var b in this.metadata) {
|
|
this.metadata.hasOwnProperty(b) && this.metadata[b].trace(a);
|
|
}
|
|
}
|
|
a.writeLn(this);
|
|
};
|
|
g.MethodInfo.prototype.trace = function(a) {
|
|
var c = this.abc;
|
|
a.enter("method" + (this.name ? " " + this.name : "") + " {");
|
|
a.writeLn("flags: " + b.IntegerUtilities.getFlags(this.flags, "NEED_ARGUMENTS NEED_ACTIVATION NEED_REST HAS_OPTIONAL NATIVE SET_DXN HAS_PARAM_NAMES".split(" ")));
|
|
a.writeLn("parameters: " + this.parameters.map(function(a) {
|
|
return(a.type ? g.Multiname.getQualifiedName(a.type) + "::" : "") + a.name;
|
|
}));
|
|
if (this.code) {
|
|
var q = new g.AbcStream(this.code);
|
|
f(a, "traits", this.traits);
|
|
for (a.enter("code {");0 < q.remaining();) {
|
|
var l = q.readU8(), n = b.AVM2.opcodeTable[l], w;
|
|
w = ("" + q.position).padRight(" ", 6);
|
|
switch(l) {
|
|
case 27:
|
|
w += n.name + ": defaultOffset: " + q.readS24();
|
|
l = q.readU30();
|
|
w += ", caseCount: " + l;
|
|
for (n = 0;n < l + 1;n++) {
|
|
w += " offset: " + q.readS24();
|
|
}
|
|
a.writeLn(w);
|
|
break;
|
|
default:
|
|
n ? (w += n.name.padRight(" ", 20), n.operands ? (0 < n.operands.length && (w += k(n, c, q)), a.writeLn(w)) : d(!1, "Opcode: " + n.name + " has undefined operands.")) : d(!1, "Opcode: " + l + " is not implemented.");
|
|
}
|
|
}
|
|
a.leave("}");
|
|
}
|
|
a.leave("}");
|
|
};
|
|
var n = function() {
|
|
function c(a) {
|
|
return void 0 === a ? "undefined" : null === a ? "null" : "string" === typeof a ? '"' + a + '"' : String(a);
|
|
}
|
|
function e(a, b) {
|
|
"undefined" === typeof b && (b = !1);
|
|
return a.parameters.map(function(a) {
|
|
var e = a.name;
|
|
b || (a.type && (e += ":" + a.type.getName()), void 0 !== a.value && (e += " = " + c(a.value)));
|
|
return e;
|
|
}).join(", ");
|
|
}
|
|
function d(a) {
|
|
this.writer = a;
|
|
}
|
|
d.prototype = {traceTraits:function(b, d, q) {
|
|
var r = this.writer, h = this;
|
|
b.forEach(function(b) {
|
|
var l;
|
|
l = g.Multiname.getAccessModifier(b.name);
|
|
var n = b.name.namespaces[0].uri;
|
|
n && ("http://adobe.com/AS3/2006/builtin" === n && (n = "AS3"), l = "public" === l ? q === n ? "" : n : l);
|
|
d && (l += " static");
|
|
if (b.isSlot() || b.isConst()) {
|
|
h.traceMetadata(b.metadata), l = b.isConst() ? l + " const" : l + " var", l += " " + b.name.getName(), b.typeName && (l += ":" + b.typeName.getName()), b.value && (l += " = " + c(b.value)), r.writeLn(l + ";");
|
|
} else {
|
|
if (b.isMethod() || b.isGetter() || b.isSetter()) {
|
|
h.traceMetadata(b.metadata);
|
|
n = b.methodInfo;
|
|
b.attributes & 2 && (l += " override");
|
|
n.isNative() && (l += " native");
|
|
l = l + " function" + (b.isGetter() ? " get" : b.isSetter() ? " set" : "");
|
|
l += " " + b.name.getName();
|
|
l += "(" + e(n) + ")";
|
|
l += n.returnType ? ":" + n.returnType.getName() : "";
|
|
var f;
|
|
b.holder instanceof g.ClassInfo ? (f = b.holder.instanceInfo.name, f.getName()) : b.holder instanceof g.InstanceInfo && (f = b.holder.name, f.getName());
|
|
n.isNative();
|
|
n.isNative() ? r.writeLn(l + ";") : q ? r.writeLn(l + ";") : r.writeLn(l + ' { notImplemented("' + b.name.getName() + '"); }');
|
|
} else {
|
|
b.isClass() ? (f = b.classInfo.instanceInfo.name, r.enter("package " + f.namespaces[0].uri + " {\n"), h.traceMetadata(b.metadata), h.traceClass(b.classInfo), r.leave("\n}"), h.traceClassStub(b)) : a(b);
|
|
}
|
|
}
|
|
});
|
|
}, traceClassStub2:function(a) {
|
|
function b(a, h) {
|
|
"undefined" === typeof h && (h = !1);
|
|
var l = [];
|
|
a.forEach(function(a, b) {
|
|
(a.isMethod() || a.isGetter() || a.isSetter()) && a.methodInfo.isNative() && l.push(a);
|
|
});
|
|
l.forEach(function(a, b) {
|
|
var h = a.methodInfo, d = a.name.getName();
|
|
c.writeLn("// " + d + " :: " + (h.parameters.length ? e(h) : "void") + " -> " + (h.returnType ? h.returnType.getName() : "any"));
|
|
c.enter((a.isGetter() ? '"get ' + d + '"' : a.isSetter() ? '"set ' + d + '"' : d) + ": function " + d + "(" + e(h, !0) + ") {");
|
|
c.writeLn(' notImplemented("' + p + "." + d + '");');
|
|
c.leave("}" + (b === l.length - 1 ? "" : ",\n"));
|
|
});
|
|
}
|
|
var c = this.writer, d = a.classInfo, h = d.instanceInfo, p = h.name.getName();
|
|
a = a.metadata ? a.metadata.native : null;
|
|
if (!a) {
|
|
return!1;
|
|
}
|
|
c.writeLn("Cut and paste the following into `native.js' and edit accordingly");
|
|
c.writeLn("8< --------------------------------------------------------------");
|
|
c.enter("natives." + a.cls + " = function " + a.cls + "(runtime, scope, instanceConstructor, baseClass) {");
|
|
c.writeLn('var c = new Class("' + p + '", instanceConstructor, ApplicationDomain.passthroughCallable(instanceConstructor));');
|
|
c.writeLn("c.extend(baseClass);\n");
|
|
c.enter("c.nativeStatics = {");
|
|
b(d.traits, !0);
|
|
c.leave("};\n");
|
|
c.enter("c.nativeMethods = {");
|
|
b(h.traits);
|
|
c.leave("};\n");
|
|
c.writeLn("return c;");
|
|
c.leave("};");
|
|
c.writeLn("-------------------------------------------------------------- >8");
|
|
return!0;
|
|
}, traceClassStub:function(a) {
|
|
function c(a) {
|
|
return{properties:a.filter(function(a) {
|
|
return!1;
|
|
}), methods:a.filter(function(a) {
|
|
return(a.isMethod() || a.isGetter() || a.isSetter()) && !0 === a.methodInfo.isNative();
|
|
})};
|
|
}
|
|
function d(a, h) {
|
|
function l(a, b) {
|
|
var c = a.methodInfo, d = a.name.getName(), n = "// (" + (c.parameters.length ? e(c) : "void") + ") -> " + (c.returnType ? c.returnType.getName() : "any"), f = d;
|
|
a.isGetter() ? f = "get" : a.isSetter() && (f = "set");
|
|
p.enter(f + ": function " + d + "(" + e(c, !0) + ") { " + n);
|
|
p.writeLn('notImplemented("' + q + "." + d + '");');
|
|
h || (a.isGetter() ? p.writeLn("return this._" + d + ";") : a.isSetter() && p.writeLn("this._" + d + " = " + c.parameters[0].name + ";"));
|
|
p.leave("}" + (b ? "," : ""));
|
|
}
|
|
"undefined" === typeof h && (h = !1);
|
|
a = c(a);
|
|
var n = [], f = b.ObjectUtilities.createEmptyObject();
|
|
a.methods.forEach(function(a, b) {
|
|
var c = a.name.getName();
|
|
a.isGetter() || a.isSetter() ? (f[c] || (f[c] = []), f[c].push(a)) : n.push(a);
|
|
});
|
|
for (var w = 0;w < n.length;w++) {
|
|
l(n[w], w < n.length - 1);
|
|
}
|
|
for (var g = b.ObjectUtilities.toKeyValueArray(f), m = 0;m < g.length;m++) {
|
|
p.enter(g[m][0] + ": {");
|
|
for (var y = g[m][1], w = 0;w < y.length;w++) {
|
|
l(y[w], w < y.length - 1);
|
|
}
|
|
p.leave("}" + (m < g.length - 1 ? "," : ""));
|
|
}
|
|
a.properties.forEach(function(b, c) {
|
|
var e = b.name.getName(), h = c === a.properties.length - 1;
|
|
b.name.getNamespace().isPublic() && p.writeLn(e + ": " + ("'public " + b.name.name + "'") + (h ? "" : ","));
|
|
});
|
|
}
|
|
var p = this.writer;
|
|
a = a.classInfo;
|
|
var h = a.instanceInfo, q = h.name.getName();
|
|
p.writeLn("Cut and paste the following glue and edit accordingly.");
|
|
p.writeLn("Class " + h);
|
|
p.writeLn("8< --------------------------------------------------------------");
|
|
var n = h.name.namespaces[0].uri;
|
|
p.enter("var " + q + "Definition = (function () {");
|
|
p.enter("return {");
|
|
p.writeLn("// (" + e(h.init, !1) + ")");
|
|
p.writeLn('__class__: "' + n + "." + q + '",');
|
|
p.enter("initialize: function () {");
|
|
p.leave("},");
|
|
p.enter("__glue__: {");
|
|
p.enter("native: {");
|
|
p.enter("static: {");
|
|
d(a.traits, !0);
|
|
p.leave("},");
|
|
p.enter("instance: {");
|
|
d(h.traits);
|
|
p.leave("}");
|
|
p.leave("},");
|
|
p.enter("script: {");
|
|
p.writeLn("instance: Glue.ALL");
|
|
p.leave("}");
|
|
p.leave("}");
|
|
p.leave("};");
|
|
p.leave("}).call(this);");
|
|
p.writeLn("-------------------------------------------------------------- >8");
|
|
return!0;
|
|
}, traceClass:function(a) {
|
|
var b = this.writer, c = a.instanceInfo, d = c.name, h = g.Multiname.getAccessModifier(d);
|
|
c.isFinal() && (h += " final");
|
|
c.isSealed() || (h += " dynamic");
|
|
h += c.isInterface() ? " interface " : " class ";
|
|
h += d.getName();
|
|
c.superName && "Object" !== c.superName.getName() && (h += " extends " + c.superName.getName());
|
|
c.interfaces.length && (h += " implements " + c.interfaces.map(function(a) {
|
|
return a.getName();
|
|
}).join(", "));
|
|
b.enter(h + " {");
|
|
c.isInterface() || b.writeLn("public function " + d.getName() + "(" + e(c.init) + ") {}");
|
|
var p;
|
|
c.isInterface() && (p = d.namespaces[0].uri + ":" + d.name);
|
|
this.traceTraits(a.traits, !0, p);
|
|
this.traceTraits(c.traits, !1, p);
|
|
b.leave("}");
|
|
}, traceMetadata:function(a) {
|
|
var b = this.writer, c;
|
|
for (c in a) {
|
|
a.hasOwnProperty(c) && 0 !== c.indexOf("__") && b.writeLn("[" + c + "(" + a[c].value.map(function(a) {
|
|
return(a.key ? a.key + "=" : "") + '"' + a.value + '"';
|
|
}).join(", ") + ")]");
|
|
}
|
|
}};
|
|
return d;
|
|
}();
|
|
})(k.ABC || (k.ABC = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = b.Debug.assert, f = b.Debug.unexpected, t = b.AVM2.ABC.AbcStream, s = b.ArrayUtilities.top, m = b.ArrayUtilities.peek;
|
|
(function(a) {
|
|
a[a.bkpt = 1] = "bkpt";
|
|
a[a.nop = 2] = "nop";
|
|
a[a["throw"] = 3] = "throw";
|
|
a[a.getsuper = 4] = "getsuper";
|
|
a[a.setsuper = 5] = "setsuper";
|
|
a[a.dxns = 6] = "dxns";
|
|
a[a.dxnslate = 7] = "dxnslate";
|
|
a[a.kill = 8] = "kill";
|
|
a[a.label = 9] = "label";
|
|
a[a.lf32x4 = 10] = "lf32x4";
|
|
a[a.sf32x4 = 11] = "sf32x4";
|
|
a[a.ifnlt = 12] = "ifnlt";
|
|
a[a.ifnle = 13] = "ifnle";
|
|
a[a.ifngt = 14] = "ifngt";
|
|
a[a.ifnge = 15] = "ifnge";
|
|
a[a.jump = 16] = "jump";
|
|
a[a.iftrue = 17] = "iftrue";
|
|
a[a.iffalse = 18] = "iffalse";
|
|
a[a.ifeq = 19] = "ifeq";
|
|
a[a.ifne = 20] = "ifne";
|
|
a[a.iflt = 21] = "iflt";
|
|
a[a.ifle = 22] = "ifle";
|
|
a[a.ifgt = 23] = "ifgt";
|
|
a[a.ifge = 24] = "ifge";
|
|
a[a.ifstricteq = 25] = "ifstricteq";
|
|
a[a.ifstrictne = 26] = "ifstrictne";
|
|
a[a.lookupswitch = 27] = "lookupswitch";
|
|
a[a.pushwith = 28] = "pushwith";
|
|
a[a.popscope = 29] = "popscope";
|
|
a[a.nextname = 30] = "nextname";
|
|
a[a.hasnext = 31] = "hasnext";
|
|
a[a.pushnull = 32] = "pushnull";
|
|
a[a.pushundefined = 33] = "pushundefined";
|
|
a[a.pushfloat = 34] = "pushfloat";
|
|
a[a.nextvalue = 35] = "nextvalue";
|
|
a[a.pushbyte = 36] = "pushbyte";
|
|
a[a.pushshort = 37] = "pushshort";
|
|
a[a.pushtrue = 38] = "pushtrue";
|
|
a[a.pushfalse = 39] = "pushfalse";
|
|
a[a.pushnan = 40] = "pushnan";
|
|
a[a.pop = 41] = "pop";
|
|
a[a.dup = 42] = "dup";
|
|
a[a.swap = 43] = "swap";
|
|
a[a.pushstring = 44] = "pushstring";
|
|
a[a.pushint = 45] = "pushint";
|
|
a[a.pushuint = 46] = "pushuint";
|
|
a[a.pushdouble = 47] = "pushdouble";
|
|
a[a.pushscope = 48] = "pushscope";
|
|
a[a.pushnamespace = 49] = "pushnamespace";
|
|
a[a.hasnext2 = 50] = "hasnext2";
|
|
a[a.li8 = 53] = "li8";
|
|
a[a.li16 = 54] = "li16";
|
|
a[a.li32 = 55] = "li32";
|
|
a[a.lf32 = 56] = "lf32";
|
|
a[a.lf64 = 57] = "lf64";
|
|
a[a.si8 = 58] = "si8";
|
|
a[a.si16 = 59] = "si16";
|
|
a[a.si32 = 60] = "si32";
|
|
a[a.sf32 = 61] = "sf32";
|
|
a[a.sf64 = 62] = "sf64";
|
|
a[a.newfunction = 64] = "newfunction";
|
|
a[a.call = 65] = "call";
|
|
a[a.construct = 66] = "construct";
|
|
a[a.callmethod = 67] = "callmethod";
|
|
a[a.callstatic = 68] = "callstatic";
|
|
a[a.callsuper = 69] = "callsuper";
|
|
a[a.callproperty = 70] = "callproperty";
|
|
a[a.returnvoid = 71] = "returnvoid";
|
|
a[a.returnvalue = 72] = "returnvalue";
|
|
a[a.constructsuper = 73] = "constructsuper";
|
|
a[a.constructprop = 74] = "constructprop";
|
|
a[a.callsuperid = 75] = "callsuperid";
|
|
a[a.callproplex = 76] = "callproplex";
|
|
a[a.callinterface = 77] = "callinterface";
|
|
a[a.callsupervoid = 78] = "callsupervoid";
|
|
a[a.callpropvoid = 79] = "callpropvoid";
|
|
a[a.sxi1 = 80] = "sxi1";
|
|
a[a.sxi8 = 81] = "sxi8";
|
|
a[a.sxi16 = 82] = "sxi16";
|
|
a[a.applytype = 83] = "applytype";
|
|
a[a.pushfloat4 = 84] = "pushfloat4";
|
|
a[a.newobject = 85] = "newobject";
|
|
a[a.newarray = 86] = "newarray";
|
|
a[a.newactivation = 87] = "newactivation";
|
|
a[a.newclass = 88] = "newclass";
|
|
a[a.getdescendants = 89] = "getdescendants";
|
|
a[a.newcatch = 90] = "newcatch";
|
|
a[a.findpropstrict = 93] = "findpropstrict";
|
|
a[a.findproperty = 94] = "findproperty";
|
|
a[a.finddef = 95] = "finddef";
|
|
a[a.getlex = 96] = "getlex";
|
|
a[a.setproperty = 97] = "setproperty";
|
|
a[a.getlocal = 98] = "getlocal";
|
|
a[a.setlocal = 99] = "setlocal";
|
|
a[a.getglobalscope = 100] = "getglobalscope";
|
|
a[a.getscopeobject = 101] = "getscopeobject";
|
|
a[a.getproperty = 102] = "getproperty";
|
|
a[a.getouterscope = 103] = "getouterscope";
|
|
a[a.initproperty = 104] = "initproperty";
|
|
a[a.setpropertylate = 105] = "setpropertylate";
|
|
a[a.deleteproperty = 106] = "deleteproperty";
|
|
a[a.deletepropertylate = 107] = "deletepropertylate";
|
|
a[a.getslot = 108] = "getslot";
|
|
a[a.setslot = 109] = "setslot";
|
|
a[a.getglobalslot = 110] = "getglobalslot";
|
|
a[a.setglobalslot = 111] = "setglobalslot";
|
|
a[a.convert_s = 112] = "convert_s";
|
|
a[a.esc_xelem = 113] = "esc_xelem";
|
|
a[a.esc_xattr = 114] = "esc_xattr";
|
|
a[a.convert_i = 115] = "convert_i";
|
|
a[a.convert_u = 116] = "convert_u";
|
|
a[a.convert_d = 117] = "convert_d";
|
|
a[a.convert_b = 118] = "convert_b";
|
|
a[a.convert_o = 119] = "convert_o";
|
|
a[a.checkfilter = 120] = "checkfilter";
|
|
a[a.convert_f = 121] = "convert_f";
|
|
a[a.unplus = 122] = "unplus";
|
|
a[a.convert_f4 = 123] = "convert_f4";
|
|
a[a.coerce = 128] = "coerce";
|
|
a[a.coerce_b = 129] = "coerce_b";
|
|
a[a.coerce_a = 130] = "coerce_a";
|
|
a[a.coerce_i = 131] = "coerce_i";
|
|
a[a.coerce_d = 132] = "coerce_d";
|
|
a[a.coerce_s = 133] = "coerce_s";
|
|
a[a.astype = 134] = "astype";
|
|
a[a.astypelate = 135] = "astypelate";
|
|
a[a.coerce_u = 136] = "coerce_u";
|
|
a[a.coerce_o = 137] = "coerce_o";
|
|
a[a.negate = 144] = "negate";
|
|
a[a.increment = 145] = "increment";
|
|
a[a.inclocal = 146] = "inclocal";
|
|
a[a.decrement = 147] = "decrement";
|
|
a[a.declocal = 148] = "declocal";
|
|
a[a["typeof"] = 149] = "typeof";
|
|
a[a.not = 150] = "not";
|
|
a[a.bitnot = 151] = "bitnot";
|
|
a[a.add = 160] = "add";
|
|
a[a.subtract = 161] = "subtract";
|
|
a[a.multiply = 162] = "multiply";
|
|
a[a.divide = 163] = "divide";
|
|
a[a.modulo = 164] = "modulo";
|
|
a[a.lshift = 165] = "lshift";
|
|
a[a.rshift = 166] = "rshift";
|
|
a[a.urshift = 167] = "urshift";
|
|
a[a.bitand = 168] = "bitand";
|
|
a[a.bitor = 169] = "bitor";
|
|
a[a.bitxor = 170] = "bitxor";
|
|
a[a.equals = 171] = "equals";
|
|
a[a.strictequals = 172] = "strictequals";
|
|
a[a.lessthan = 173] = "lessthan";
|
|
a[a.lessequals = 174] = "lessequals";
|
|
a[a.greaterthan = 175] = "greaterthan";
|
|
a[a.greaterequals = 176] = "greaterequals";
|
|
a[a["instanceof"] = 177] = "instanceof";
|
|
a[a.istype = 178] = "istype";
|
|
a[a.istypelate = 179] = "istypelate";
|
|
a[a["in"] = 180] = "in";
|
|
a[a.increment_i = 192] = "increment_i";
|
|
a[a.decrement_i = 193] = "decrement_i";
|
|
a[a.inclocal_i = 194] = "inclocal_i";
|
|
a[a.declocal_i = 195] = "declocal_i";
|
|
a[a.negate_i = 196] = "negate_i";
|
|
a[a.add_i = 197] = "add_i";
|
|
a[a.subtract_i = 198] = "subtract_i";
|
|
a[a.multiply_i = 199] = "multiply_i";
|
|
a[a.getlocal0 = 208] = "getlocal0";
|
|
a[a.getlocal1 = 209] = "getlocal1";
|
|
a[a.getlocal2 = 210] = "getlocal2";
|
|
a[a.getlocal3 = 211] = "getlocal3";
|
|
a[a.setlocal0 = 212] = "setlocal0";
|
|
a[a.setlocal1 = 213] = "setlocal1";
|
|
a[a.setlocal2 = 214] = "setlocal2";
|
|
a[a.setlocal3 = 215] = "setlocal3";
|
|
a[a.invalid = 237] = "invalid";
|
|
a[a.debug = 239] = "debug";
|
|
a[a.debugline = 240] = "debugline";
|
|
a[a.debugfile = 241] = "debugfile";
|
|
a[a.bkptline = 242] = "bkptline";
|
|
a[a.timestamp = 243] = "timestamp";
|
|
})(k.OP || (k.OP = {}));
|
|
k.opcodeTable = [null, {name:"bkpt", canThrow:!1, operands:[]}, {name:"nop", canThrow:!1, operands:[]}, {name:"throw", canThrow:!0, operands:[]}, {name:"getsuper", canThrow:!0, operands:[{name:"index", size:"u30", type:""}]}, {name:"setsuper", canThrow:!0, operands:[{name:"index", size:"u30", type:""}]}, {name:"dxns", canThrow:!0, operands:[{name:"index", size:"u30", type:""}]}, {name:"dxnslate", canThrow:!0, operands:[]}, {name:"kill", canThrow:!1, operands:[{name:"index", size:"u30", type:""}]},
|
|
{name:"label", canThrow:!1, operands:[]}, {name:"lf32x4", canThrow:!0, operands:[]}, {name:"sf32x4", canThrow:!0, operands:[]}, {name:"ifnlt", canThrow:!0, operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifnle", canThrow:!0, operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifngt", canThrow:!0, operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifnge", canThrow:!0, operands:[{name:"offset", size:"s24", type:""}]}, {name:"jump", canThrow:!1, operands:[{name:"offset", size:"s24",
|
|
type:""}]}, {name:"iftrue", canThrow:!1, operands:[{name:"offset", size:"s24", type:""}]}, {name:"iffalse", canThrow:!1, operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifeq", canThrow:!0, operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifne", canThrow:!0, operands:[{name:"offset", size:"s24", type:""}]}, {name:"iflt", canThrow:!0, operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifle", canThrow:!0, operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifgt", canThrow:!0,
|
|
operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifge", canThrow:!0, operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifstricteq", canThrow:!1, operands:[{name:"offset", size:"s24", type:""}]}, {name:"ifstrictne", canThrow:!1, operands:[{name:"offset", size:"s24", type:""}]}, {name:"lookupswitch", canThrow:!1, operands:null}, {name:"pushwith", canThrow:!1, operands:[]}, {name:"popscope", canThrow:!1, operands:[]}, {name:"nextname", canThrow:!0, operands:[]}, {name:"hasnext", canThrow:!0,
|
|
operands:[]}, {name:"pushnull", canThrow:!1, operands:[]}, {name:"pushundefined", canThrow:!1, operands:[]}, null, {name:"nextvalue", canThrow:!0, operands:[]}, {name:"pushbyte", canThrow:!1, operands:[{name:"value", size:"s08", type:""}]}, {name:"pushshort", canThrow:!1, operands:[{name:"value", size:"s16", type:""}]}, {name:"pushtrue", canThrow:!1, operands:[]}, {name:"pushfalse", canThrow:!1, operands:[]}, {name:"pushnan", canThrow:!1, operands:[]}, {name:"pop", canThrow:!1, operands:[]},
|
|
{name:"dup", canThrow:!1, operands:[]}, {name:"swap", canThrow:!1, operands:[]}, {name:"pushstring", canThrow:!1, operands:[{name:"index", size:"u30", type:"S"}]}, {name:"pushint", canThrow:!1, operands:[{name:"index", size:"u30", type:"I"}]}, {name:"pushuint", canThrow:!1, operands:[{name:"index", size:"u30", type:"U"}]}, {name:"pushdouble", canThrow:!1, operands:[{name:"index", size:"u30", type:"D"}]}, {name:"pushscope", canThrow:!1, operands:[]}, {name:"pushnamespace", canThrow:!1, operands:[{name:"index",
|
|
size:"u30", type:"N"}]}, {name:"hasnext2", canThrow:!0, operands:[{name:"object", size:"u30", type:""}, {name:"index", size:"u30", type:""}]}, {name:"lix8", canThrow:!0, operands:null}, {name:"lix16", canThrow:!0, operands:null}, {name:"li8", canThrow:!0, operands:[]}, {name:"li16", canThrow:!0, operands:[]}, {name:"li32", canThrow:!0, operands:[]}, {name:"lf32", canThrow:!0, operands:[]}, {name:"lf64", canThrow:!0, operands:[]}, {name:"si8", canThrow:!0, operands:[]}, {name:"si16", canThrow:!0,
|
|
operands:[]}, {name:"si32", canThrow:!0, operands:[]}, {name:"sf32", canThrow:!0, operands:[]}, {name:"sf64", canThrow:!0, operands:[]}, null, {name:"newfunction", canThrow:!0, operands:[{name:"index", size:"u30", type:"MI"}]}, {name:"call", canThrow:!0, operands:[{name:"argCount", size:"u30", type:""}]}, {name:"construct", canThrow:!0, operands:[{name:"argCount", size:"u30", type:""}]}, {name:"callmethod", canThrow:!0, operands:[{name:"index", size:"u30", type:""}, {name:"argCount", size:"u30",
|
|
type:""}]}, {name:"callstatic", canThrow:!0, operands:[{name:"index", size:"u30", type:"MI"}, {name:"argCount", size:"u30", type:""}]}, {name:"callsuper", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}, {name:"argCount", size:"u30", type:""}]}, {name:"callproperty", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}, {name:"argCount", size:"u30", type:""}]}, {name:"returnvoid", canThrow:!1, operands:[]}, {name:"returnvalue", canThrow:!0, operands:[]}, {name:"constructsuper",
|
|
canThrow:!0, operands:[{name:"argCount", size:"u30", type:""}]}, {name:"constructprop", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}, {name:"argCount", size:"u30", type:""}]}, {name:"callsuperid", canThrow:!0, operands:null}, {name:"callproplex", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}, {name:"argCount", size:"u30", type:""}]}, {name:"callinterface", canThrow:!0, operands:null}, {name:"callsupervoid", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"},
|
|
{name:"argCount", size:"u30", type:""}]}, {name:"callpropvoid", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}, {name:"argCount", size:"u30", type:""}]}, {name:"sxi1", canThrow:!1, operands:[]}, {name:"sxi8", canThrow:!1, operands:[]}, {name:"sxi16", canThrow:!1, operands:[]}, {name:"applytype", canThrow:!0, operands:[{name:"argCount", size:"u30", type:""}]}, {name:"pushfloat4", canThrow:!1, operands:null}, {name:"newobject", canThrow:!0, operands:[{name:"argCount", size:"u30", type:""}]},
|
|
{name:"newarray", canThrow:!0, operands:[{name:"argCount", size:"u30", type:""}]}, {name:"newactivation", canThrow:!0, operands:[]}, {name:"newclass", canThrow:!0, operands:[{name:"index", size:"u30", type:"CI"}]}, {name:"getdescendants", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, {name:"newcatch", canThrow:!0, operands:[{name:"index", size:"u30", type:"EI"}]}, {name:"findpropglobalstrict", canThrow:!0, operands:null}, {name:"findpropglobal", canThrow:!0, operands:null}, {name:"findpropstrict",
|
|
canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, {name:"findproperty", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, {name:"finddef", canThrow:!0, operands:null}, {name:"getlex", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, {name:"setproperty", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, {name:"getlocal", canThrow:!1, operands:[{name:"index", size:"u30", type:""}]}, {name:"setlocal", canThrow:!1, operands:[{name:"index", size:"u30",
|
|
type:""}]}, {name:"getglobalscope", canThrow:!1, operands:[]}, {name:"getscopeobject", canThrow:!1, operands:[{name:"index", size:"u30", type:""}]}, {name:"getproperty", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, {name:"getouterscope", canThrow:!1, operands:null}, {name:"initproperty", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, null, {name:"deleteproperty", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, null, {name:"getslot", canThrow:!0,
|
|
operands:[{name:"index", size:"u30", type:""}]}, {name:"setslot", canThrow:!0, operands:[{name:"index", size:"u30", type:""}]}, {name:"getglobalslot", canThrow:!1, operands:[{name:"index", size:"u30", type:""}]}, {name:"setglobalslot", canThrow:!1, operands:[{name:"index", size:"u30", type:""}]}, {name:"convert_s", canThrow:!0, operands:[]}, {name:"esc_xelem", canThrow:!0, operands:[]}, {name:"esc_xattr", canThrow:!0, operands:[]}, {name:"convert_i", canThrow:!0, operands:[]}, {name:"convert_u",
|
|
canThrow:!0, operands:[]}, {name:"convert_d", canThrow:!0, operands:[]}, {name:"convert_b", canThrow:!0, operands:[]}, {name:"convert_o", canThrow:!0, operands:[]}, {name:"checkfilter", canThrow:!0, operands:[]}, {name:"convert_f", canThrow:!0, operands:[]}, {name:"unplus", canThrow:!0, operands:[]}, {name:"convert_f4", canThrow:!0, operands:[]}, null, null, null, null, {name:"coerce", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, {name:"coerce_b", canThrow:!0, operands:[]},
|
|
{name:"coerce_a", canThrow:!0, operands:[]}, {name:"coerce_i", canThrow:!0, operands:[]}, {name:"coerce_d", canThrow:!0, operands:[]}, {name:"coerce_s", canThrow:!0, operands:[]}, {name:"astype", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, {name:"astypelate", canThrow:!0, operands:[]}, {name:"coerce_u", canThrow:!0, operands:[]}, {name:"coerce_o", canThrow:!0, operands:[]}, null, null, null, null, null, null, {name:"negate", canThrow:!0, operands:[]}, {name:"increment", canThrow:!0,
|
|
operands:[]}, {name:"inclocal", canThrow:!0, operands:[{name:"index", size:"u30", type:""}]}, {name:"decrement", canThrow:!0, operands:[]}, {name:"declocal", canThrow:!0, operands:[{name:"index", size:"u30", type:""}]}, {name:"typeof", canThrow:!1, operands:[]}, {name:"not", canThrow:!1, operands:[]}, {name:"bitnot", canThrow:!0, operands:[]}, null, null, null, null, null, null, null, null, {name:"add", canThrow:!0, operands:[]}, {name:"subtract", canThrow:!0, operands:[]}, {name:"multiply",
|
|
canThrow:!0, operands:[]}, {name:"divide", canThrow:!0, operands:[]}, {name:"modulo", canThrow:!0, operands:[]}, {name:"lshift", canThrow:!0, operands:[]}, {name:"rshift", canThrow:!0, operands:[]}, {name:"urshift", canThrow:!0, operands:[]}, {name:"bitand", canThrow:!0, operands:[]}, {name:"bitor", canThrow:!0, operands:[]}, {name:"bitxor", canThrow:!0, operands:[]}, {name:"equals", canThrow:!0, operands:[]}, {name:"strictequals", canThrow:!0, operands:[]}, {name:"lessthan", canThrow:!0, operands:[]},
|
|
{name:"lessequals", canThrow:!0, operands:[]}, {name:"greaterthan", canThrow:!0, operands:[]}, {name:"greaterequals", canThrow:!0, operands:[]}, {name:"instanceof", canThrow:!0, operands:[]}, {name:"istype", canThrow:!0, operands:[{name:"index", size:"u30", type:"M"}]}, {name:"istypelate", canThrow:!0, operands:[]}, {name:"in", canThrow:!0, operands:[]}, null, null, null, null, null, null, null, null, null, null, null, {name:"increment_i", canThrow:!0, operands:[]}, {name:"decrement_i", canThrow:!0,
|
|
operands:[]}, {name:"inclocal_i", canThrow:!0, operands:[{name:"index", size:"u30", type:""}]}, {name:"declocal_i", canThrow:!0, operands:[{name:"index", size:"u30", type:""}]}, {name:"negate_i", canThrow:!0, operands:[]}, {name:"add_i", canThrow:!0, operands:[]}, {name:"subtract_i", canThrow:!0, operands:[]}, {name:"multiply_i", canThrow:!0, operands:[]}, null, null, null, null, null, null, null, null, {name:"getlocal0", canThrow:!1, operands:[]}, {name:"getlocal1", canThrow:!1, operands:[]},
|
|
{name:"getlocal2", canThrow:!1, operands:[]}, {name:"getlocal3", canThrow:!1, operands:[]}, {name:"setlocal0", canThrow:!1, operands:[]}, {name:"setlocal1", canThrow:!1, operands:[]}, {name:"setlocal2", canThrow:!1, operands:[]}, {name:"setlocal3", canThrow:!1, operands:[]}, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, {name:"invalid", canThrow:!1, operands:[]}, null, {name:"debug", canThrow:!0, operands:[{name:"debugType",
|
|
size:"u08", type:""}, {name:"index", size:"u30", type:"S"}, {name:"reg", size:"u08", type:""}, {name:"extra", size:"u30", type:""}]}, {name:"debugline", canThrow:!0, operands:[{name:"lineNumber", size:"u30", type:""}]}, {name:"debugfile", canThrow:!0, operands:[{name:"index", size:"u30", type:"S"}]}, null, null, null, null, null, null, null, null, null, null, null, null, null, null];
|
|
k.opcodeName = function(a) {
|
|
return k.opcodeTable[a].name;
|
|
};
|
|
var d = function() {
|
|
function a(c) {
|
|
var e = c.readU8();
|
|
this.op = e;
|
|
this.originalPosition = c.position;
|
|
var d = b.AVM2.opcodeTable[e];
|
|
d || f("Unknown Op " + e);
|
|
this.canThrow = d.canThrow;
|
|
var p;
|
|
switch(e) {
|
|
case 27:
|
|
d = c.readS24();
|
|
this.offsets = [];
|
|
p = c.readU30() + 1;
|
|
for (e = 0;e < p;e++) {
|
|
this.offsets.push(c.readS24());
|
|
}
|
|
this.offsets.push(d);
|
|
break;
|
|
default:
|
|
for (e = 0, p = d.operands.length;e < p;e++) {
|
|
var r = d.operands[e];
|
|
switch(r.size) {
|
|
case "u08":
|
|
this[r.name] = c.readU8();
|
|
break;
|
|
case "s08":
|
|
this[r.name] = c.readS8();
|
|
break;
|
|
case "s16":
|
|
this[r.name] = c.readS16();
|
|
break;
|
|
case "s24":
|
|
this[r.name] = c.readS24();
|
|
break;
|
|
case "u30":
|
|
this[r.name] = c.readU30();
|
|
break;
|
|
case "u32":
|
|
this[r.name] = c.readU32();
|
|
break;
|
|
default:
|
|
f();
|
|
}
|
|
}
|
|
;
|
|
}
|
|
}
|
|
a.prototype.makeBlockHead = function(a) {
|
|
if (this.succs) {
|
|
return a;
|
|
}
|
|
this.bid = a;
|
|
this.succs = [];
|
|
this.preds = [];
|
|
this.dominatees = [];
|
|
return a + 1;
|
|
};
|
|
a.prototype.trace = function(a) {
|
|
this.succs && a.writeLn("#" + this.bid);
|
|
};
|
|
a.prototype.toString = function(a) {
|
|
var c = b.AVM2.opcodeTable[this.op], e = c.name.padRight(" ", 20), d, p;
|
|
if (27 === this.op) {
|
|
for (e += "targets:", d = 0, p = this.targets.length;d < p;d++) {
|
|
e += (0 < d ? "," : "") + this.targets[d].position;
|
|
}
|
|
} else {
|
|
for (d = 0, p = c.operands.length;d < p;d++) {
|
|
var h = c.operands[d];
|
|
if ("offset" === h.name) {
|
|
e += "target:" + this.target.position;
|
|
} else {
|
|
var e = e + (h.name + ": "), n = this[h.name];
|
|
if (a) {
|
|
switch(h.type) {
|
|
case "":
|
|
e += n;
|
|
break;
|
|
case "I":
|
|
e += a.constantPool.ints[n];
|
|
break;
|
|
case "U":
|
|
e += a.constantPool.uints[n];
|
|
break;
|
|
case "D":
|
|
e += a.constantPool.doubles[n];
|
|
break;
|
|
case "S":
|
|
e += a.constantPool.strings[n];
|
|
break;
|
|
case "N":
|
|
e += a.constantPool.namespaces[n];
|
|
break;
|
|
case "CI":
|
|
e += a.classes[n];
|
|
break;
|
|
case "M":
|
|
e += a.constantPool.multinames[n];
|
|
break;
|
|
default:
|
|
e += "?";
|
|
}
|
|
} else {
|
|
e += n;
|
|
}
|
|
}
|
|
d < p - 1 && (e += ", ");
|
|
}
|
|
}
|
|
return e;
|
|
};
|
|
return a;
|
|
}();
|
|
k.Bytecode = d;
|
|
var a = b.BitSets.BITS_PER_WORD, c = b.BitSets.ADDRESS_BITS_PER_WORD, n = b.BitSets.BIT_INDEX_MASK, p = function(b) {
|
|
function d(a, c) {
|
|
b.call(this, a);
|
|
this.blockById = c;
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.forEachBlock = function(b) {
|
|
g(b);
|
|
for (var c = this.blockById, e = this.bits, d = 0, h = e.length;d < h;d++) {
|
|
var p = e[d];
|
|
if (p) {
|
|
for (var n = 0;n < a;n++) {
|
|
p & 1 << n && b(c[d * a + n]);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
d.prototype.choose = function() {
|
|
for (var b = this.blockById, c = this.bits, e = 0, d = c.length;e < d;e++) {
|
|
var h = c[e];
|
|
if (h) {
|
|
for (var p = 0;p < a;p++) {
|
|
if (h & 1 << p) {
|
|
return b[e * a + p];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
d.prototype.members = function() {
|
|
for (var b = this.blockById, c = [], e = this.bits, d = 0, h = e.length;d < h;d++) {
|
|
var p = e[d];
|
|
if (p) {
|
|
for (var n = 0;n < a;n++) {
|
|
p & 1 << n && c.push(b[d * a + n]);
|
|
}
|
|
}
|
|
}
|
|
return c;
|
|
};
|
|
d.prototype.setBlocks = function(a) {
|
|
for (var b = this.bits, e = 0, d = a.length;e < d;e++) {
|
|
var h = a[e].bid;
|
|
b[h >> c] |= 1 << (h & n);
|
|
}
|
|
};
|
|
return d;
|
|
}(b.BitSets.Uint32ArrayBitSet);
|
|
k.BlockSet = p;
|
|
p = function() {
|
|
function a(b) {
|
|
this.methodInfo = b;
|
|
this.methodInfo.code && (k.enterTimeline("normalizeBytecode"), this.normalizeBytecode(), k.leaveTimeline());
|
|
}
|
|
a.prototype.makeBlockSetFactory = function(a, c) {
|
|
g(!this.boundBlockSet);
|
|
this.boundBlockSet = function() {
|
|
return new b.AVM2.BlockSet(a, c);
|
|
};
|
|
};
|
|
a.prototype.accessLocal = function(a) {
|
|
0 !== a-- && a < this.methodInfo.parameters.length && (this.methodInfo.parameters[a].isUsed = !0);
|
|
};
|
|
a.prototype.getInvalidTarget = function(a, b) {
|
|
if (a && a[b]) {
|
|
return a[b];
|
|
}
|
|
var c = Object.create(d.prototype);
|
|
c.op = 237;
|
|
c.position = b;
|
|
a && (a[b] = c);
|
|
return c;
|
|
};
|
|
a.prototype.normalizeBytecode = function() {
|
|
for (var a = [], b = [], c = new t(this.methodInfo.code), e;0 < c.remaining();) {
|
|
var p = c.position;
|
|
e = new d(c);
|
|
switch(e.op) {
|
|
case 2:
|
|
;
|
|
case 9:
|
|
a[p] = b.length;
|
|
continue;
|
|
case 27:
|
|
this.methodInfo.hasLookupSwitches = !0;
|
|
e.targets = [];
|
|
for (var h = e.offsets, n = 0, f = h.length;n < f;n++) {
|
|
h[n] += p;
|
|
}
|
|
break;
|
|
case 16:
|
|
;
|
|
case 21:
|
|
;
|
|
case 12:
|
|
;
|
|
case 22:
|
|
;
|
|
case 13:
|
|
;
|
|
case 23:
|
|
;
|
|
case 14:
|
|
;
|
|
case 24:
|
|
;
|
|
case 15:
|
|
;
|
|
case 19:
|
|
;
|
|
case 20:
|
|
;
|
|
case 25:
|
|
;
|
|
case 26:
|
|
;
|
|
case 17:
|
|
;
|
|
case 18:
|
|
e.offset += c.position;
|
|
break;
|
|
case 208:
|
|
;
|
|
case 209:
|
|
;
|
|
case 210:
|
|
;
|
|
case 211:
|
|
this.accessLocal(e.op - 208);
|
|
break;
|
|
case 98:
|
|
this.accessLocal(e.index);
|
|
}
|
|
e.position = b.length;
|
|
a[p] = b.length;
|
|
b.push(e);
|
|
}
|
|
for (var c = {}, g = 0, m = b.length;g < m;g++) {
|
|
switch(e = b[g], e.op) {
|
|
case 27:
|
|
h = e.offsets;
|
|
n = 0;
|
|
for (f = h.length;n < f;n++) {
|
|
p = a[h[n]], e.targets.push(b[p] || this.getInvalidTarget(c, h[n])), h[n] = p;
|
|
}
|
|
break;
|
|
case 16:
|
|
;
|
|
case 21:
|
|
;
|
|
case 12:
|
|
;
|
|
case 22:
|
|
;
|
|
case 13:
|
|
;
|
|
case 23:
|
|
;
|
|
case 14:
|
|
;
|
|
case 24:
|
|
;
|
|
case 15:
|
|
;
|
|
case 19:
|
|
;
|
|
case 20:
|
|
;
|
|
case 25:
|
|
;
|
|
case 26:
|
|
;
|
|
case 17:
|
|
;
|
|
case 18:
|
|
p = a[e.offset], e.target = b[p] || this.getInvalidTarget(c, e.offset), e.offset = p;
|
|
}
|
|
}
|
|
this.bytecodes = b;
|
|
e = this.methodInfo.exceptions;
|
|
n = 0;
|
|
for (f = e.length;n < f;n++) {
|
|
h = e[n], h.start = a[h.start], h.end = a[h.end], h.offset = a[h.target], h.target = b[h.offset], h.target.exception = h;
|
|
}
|
|
};
|
|
a.prototype.analyzeControlFlow = function() {
|
|
g(this.bytecodes);
|
|
k.enterTimeline("analyzeControlFlow");
|
|
this.detectBasicBlocks();
|
|
this.normalizeReachableBlocks();
|
|
this.computeDominance();
|
|
this.analyzedControlFlow = !0;
|
|
k.leaveTimeline();
|
|
return!0;
|
|
};
|
|
a.prototype.detectBasicBlocks = function() {
|
|
var a = this.bytecodes, b = this.methodInfo.exceptions, c = 0 < b.length, e = {}, d, h, p, n;
|
|
n = a[0].makeBlockHead(0);
|
|
h = 0;
|
|
for (p = a.length - 1;h < p;h++) {
|
|
switch(d = a[h], d.op) {
|
|
case 71:
|
|
;
|
|
case 72:
|
|
;
|
|
case 3:
|
|
n = a[h + 1].makeBlockHead(n);
|
|
break;
|
|
case 27:
|
|
d = d.targets;
|
|
for (var f = 0, m = d.length;f < m;f++) {
|
|
n = d[f].makeBlockHead(n);
|
|
}
|
|
n = a[h + 1].makeBlockHead(n);
|
|
break;
|
|
case 16:
|
|
;
|
|
case 21:
|
|
;
|
|
case 12:
|
|
;
|
|
case 22:
|
|
;
|
|
case 13:
|
|
;
|
|
case 23:
|
|
;
|
|
case 14:
|
|
;
|
|
case 24:
|
|
;
|
|
case 15:
|
|
;
|
|
case 19:
|
|
;
|
|
case 20:
|
|
;
|
|
case 25:
|
|
;
|
|
case 26:
|
|
;
|
|
case 17:
|
|
;
|
|
case 18:
|
|
n = d.target.makeBlockHead(n), n = a[h + 1].makeBlockHead(n);
|
|
}
|
|
}
|
|
d = a[p];
|
|
switch(d.op) {
|
|
case 27:
|
|
d = d.targets;
|
|
f = 0;
|
|
for (m = d.length;f < m;f++) {
|
|
n = d[f].makeBlockHead(n);
|
|
}
|
|
break;
|
|
case 16:
|
|
n = d.target.makeBlockHead(n);
|
|
break;
|
|
case 21:
|
|
;
|
|
case 12:
|
|
;
|
|
case 22:
|
|
;
|
|
case 13:
|
|
;
|
|
case 23:
|
|
;
|
|
case 14:
|
|
;
|
|
case 24:
|
|
;
|
|
case 15:
|
|
;
|
|
case 19:
|
|
;
|
|
case 20:
|
|
;
|
|
case 25:
|
|
;
|
|
case 26:
|
|
;
|
|
case 17:
|
|
;
|
|
case 18:
|
|
n = d.target.makeBlockHead(n), a[h + 1] = this.getInvalidTarget(null, h + 1), n = a[h + 1].makeBlockHead(n);
|
|
}
|
|
if (c) {
|
|
for (f = 0;f < b.length;f++) {
|
|
h = b[f], p = a[h.end + 1], n = a[h.start].makeBlockHead(n), p && (n = p.makeBlockHead(n)), n = h.target.makeBlockHead(n);
|
|
}
|
|
}
|
|
var k = a[0];
|
|
h = 1;
|
|
for (p = a.length;h < p;h++) {
|
|
if (a[h].succs) {
|
|
g(k.succs);
|
|
e[k.bid] = k;
|
|
d = a[h - 1];
|
|
k.end = d;
|
|
var s = a[h];
|
|
switch(d.op) {
|
|
case 71:
|
|
;
|
|
case 72:
|
|
;
|
|
case 3:
|
|
break;
|
|
case 27:
|
|
f = 0;
|
|
for (m = d.targets.length;f < m;f++) {
|
|
k.succs.push(d.targets[f]);
|
|
}
|
|
break;
|
|
case 16:
|
|
k.succs.push(d.target);
|
|
break;
|
|
case 21:
|
|
;
|
|
case 12:
|
|
;
|
|
case 22:
|
|
;
|
|
case 13:
|
|
;
|
|
case 23:
|
|
;
|
|
case 14:
|
|
;
|
|
case 24:
|
|
;
|
|
case 15:
|
|
;
|
|
case 19:
|
|
;
|
|
case 20:
|
|
;
|
|
case 25:
|
|
;
|
|
case 26:
|
|
;
|
|
case 17:
|
|
;
|
|
case 18:
|
|
k.succs.push(d.target);
|
|
d.target !== s && k.succs.push(s);
|
|
break;
|
|
default:
|
|
k.succs.push(s);
|
|
}
|
|
if (c) {
|
|
f = k;
|
|
m = [];
|
|
d = 0;
|
|
for (var t = b.length;d < t;d++) {
|
|
var K = b[d];
|
|
f.position >= K.start && f.end.position <= K.end && m.push(K.target);
|
|
}
|
|
d = m;
|
|
k.hasCatches = 0 < d.length;
|
|
k.succs.push.apply(k.succs, d);
|
|
}
|
|
k = s;
|
|
}
|
|
}
|
|
e[k.bid] = k;
|
|
d = a[p - 1];
|
|
switch(d.op) {
|
|
case 27:
|
|
f = 0;
|
|
for (m = d.targets.length;f < m;f++) {
|
|
k.succs.push(d.targets[f]);
|
|
}
|
|
break;
|
|
case 16:
|
|
k.succs.push(d.target);
|
|
}
|
|
k.end = d;
|
|
this.makeBlockSetFactory(n, e);
|
|
};
|
|
a.prototype.normalizeReachableBlocks = function() {
|
|
var a = this.bytecodes[0];
|
|
g(0 === a.preds.length);
|
|
var b = [], c = {}, e = {}, d = [a];
|
|
for (e[a.bid] = !0;a = s(d);) {
|
|
if (c[a.bid]) {
|
|
if (1 === c[a.bid]) {
|
|
c[a.bid] = 2;
|
|
b.push(a);
|
|
for (var h = a.succs, p = 0, n = h.length;p < n;p++) {
|
|
h[p].preds.push(a);
|
|
}
|
|
}
|
|
e[a.bid] = !1;
|
|
d.pop();
|
|
} else {
|
|
for (c[a.bid] = 1, e[a.bid] = !0, h = a.succs, p = 0, n = h.length;p < n;p++) {
|
|
var f = h[p];
|
|
e[f.bid] && (a.spbacks || (a.spbacks = new this.boundBlockSet), a.spbacks.set(f.bid));
|
|
!c[f.bid] && d.push(f);
|
|
}
|
|
}
|
|
}
|
|
this.blocks = b.reverse();
|
|
};
|
|
a.prototype.computeDominance = function() {
|
|
var a = this.blocks, b = a.length, c = Array(b);
|
|
c[0] = 0;
|
|
for (var e = {}, d = 0;d < b;d++) {
|
|
e[a[d].bid] = d;
|
|
}
|
|
for (var h = !0;h;) {
|
|
for (h = !1, d = 1;d < b;d++) {
|
|
var p = a[d].preds, n = p.length, f = e[p[0].bid];
|
|
if (!(f in c)) {
|
|
for (var m = 1;m < n && !(f = e[p[m].bid], f in c);m++) {
|
|
}
|
|
}
|
|
g(f in c);
|
|
for (m = 0;m < n;m++) {
|
|
var k = e[p[m].bid];
|
|
if (k !== f && k in c) {
|
|
for (;k !== f;) {
|
|
for (;k > f;) {
|
|
k = c[k];
|
|
}
|
|
for (;f > k;) {
|
|
f = c[f];
|
|
}
|
|
}
|
|
f = k;
|
|
}
|
|
}
|
|
c[d] !== f && (c[d] = f, h = !0);
|
|
}
|
|
}
|
|
a[0].dominator = a[0];
|
|
for (d = 1;d < b;d++) {
|
|
e = a[d], m = a[c[d]], e.dominator = m, m.dominatees.push(e), e.npreds = e.preds.length;
|
|
}
|
|
b = [a[0]];
|
|
for (a[0].level || (a[0].level = 0);e = b.shift();) {
|
|
a = e.dominatees;
|
|
for (m = 0;m < a.length;m++) {
|
|
a[m].level = e.level + 1;
|
|
}
|
|
b.push.apply(b, a);
|
|
}
|
|
};
|
|
a.prototype.markLoops = function() {
|
|
function a(b) {
|
|
var c = 1, h = {}, e = {}, d = [], p = [], l = [], n = b.level + 1;
|
|
b = [b];
|
|
for (var q, r;q = s(b);) {
|
|
if (h[q.bid]) {
|
|
if (m(p) === q) {
|
|
p.pop();
|
|
var f = [];
|
|
do {
|
|
r = d.pop(), e[r.bid] = !0, f.push(r);
|
|
} while (r !== q);
|
|
(1 < f.length || r.spbacks && r.spbacks.get(r.bid)) && l.push(f);
|
|
}
|
|
b.pop();
|
|
} else {
|
|
h[q.bid] = c++;
|
|
d.push(q);
|
|
p.push(q);
|
|
r = q.succs;
|
|
for (var f = 0, x = r.length;f < x;f++) {
|
|
if (q = r[f], !(q.level < n)) {
|
|
var w = q.bid;
|
|
if (!h[w]) {
|
|
b.push(q);
|
|
} else {
|
|
if (!e[w]) {
|
|
for (;h[m(p).bid] > h[w];) {
|
|
p.pop();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return l;
|
|
}
|
|
function b(a, c) {
|
|
var h = new e;
|
|
h.setBlocks(a);
|
|
h.recount();
|
|
this.id = c;
|
|
this.body = h;
|
|
this.exit = new e;
|
|
this.save = {};
|
|
this.head = new e;
|
|
this.npreds = 0;
|
|
this._dirtyLocals = null;
|
|
}
|
|
if (!this.analyzedControlFlow && !this.analyzeControlFlow()) {
|
|
return!1;
|
|
}
|
|
var c = this.bytecodes, e = this.boundBlockSet;
|
|
b.prototype.getDirtyLocals = function() {
|
|
if (this._dirtyLocals) {
|
|
return this._dirtyLocals;
|
|
}
|
|
var a = this._dirtyLocals = [];
|
|
this.body.members().forEach(function(b) {
|
|
var h = b.position;
|
|
for (b = b.end.position;h <= b;h++) {
|
|
var e = c[h], d = e.op;
|
|
switch(d) {
|
|
case 146:
|
|
;
|
|
case 148:
|
|
;
|
|
case 99:
|
|
;
|
|
case 194:
|
|
;
|
|
case 195:
|
|
a[e.index] = !0;
|
|
break;
|
|
case 50:
|
|
a[e.index] = !0;
|
|
a[e.object] = !0;
|
|
break;
|
|
case 212:
|
|
;
|
|
case 213:
|
|
;
|
|
case 214:
|
|
;
|
|
case 215:
|
|
a[d - 212] = !0;
|
|
}
|
|
}
|
|
});
|
|
return a;
|
|
};
|
|
var d = function(a) {
|
|
for (var b = new e, c = 0, h = a.length;c < h;c++) {
|
|
var d = a[c], p = d.spbacks;
|
|
if (p) {
|
|
for (var d = d.succs, l = 0, n = d.length;l < n;l++) {
|
|
var q = d[l];
|
|
p.get(q.bid) && b.set(q.dominator.bid);
|
|
}
|
|
}
|
|
}
|
|
return b.members();
|
|
}(this.blocks);
|
|
if (0 >= d.length) {
|
|
return this.markedLoops = !0;
|
|
}
|
|
for (var d = d.sort(function(a, b) {
|
|
return a.level - b.level;
|
|
}), h = 0, p = d.length - 1;0 <= p;p--) {
|
|
var n = d[p], f = a(n);
|
|
if (0 !== f.length) {
|
|
for (var g = 0, k = f.length;g < k;g++) {
|
|
for (var t = f[g], O = new b(t, h++), K = 0, F = t.length;K < F;K++) {
|
|
var J = t[K];
|
|
if (J.level === n.level + 1 && !J.loop) {
|
|
J.loop = O;
|
|
O.head.set(J.bid);
|
|
for (var A = J.preds, B = 0, z = A.length;B < z;B++) {
|
|
O.body.get(A[B].bid) && J.npreds--;
|
|
}
|
|
O.npreds += J.npreds;
|
|
}
|
|
}
|
|
K = 0;
|
|
for (F = t.length;K < F;K++) {
|
|
J = t[K], J.level === n.level + 1 && (J.npreds = O.npreds);
|
|
}
|
|
O.head.recount();
|
|
}
|
|
}
|
|
}
|
|
return this.markedLoops = !0;
|
|
};
|
|
return a;
|
|
}();
|
|
k.Analysis = p;
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Bytecode = Shumway.AVM2.Bytecode, Analysis = Shumway.AVM2.Analysis;
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = b.Options.Option, f = b.Options.OptionSet, t = b.Settings.shumwayOptions.register(new f("AVM2"));
|
|
(function(b) {
|
|
var m = t.register(new f("Runtime"));
|
|
b.traceExecution = m.register(new g("tx", "traceExecution", "number", 0, "trace script execution", {choices:{off:0, normal:2, verbose:3}}));
|
|
b.traceCallExecution = m.register(new g("txc", "traceCallExecution", "number", 0, "trace call execution", {choices:{off:0, normal:1, verbose:2}}));
|
|
b.traceFunctions = m.register(new g("t", "traceFunctions", "number", 0, "trace functions", {choices:{off:0, compiled:1, "compiled & abc":2}}));
|
|
b.traceClasses = m.register(new g("tc", "traceClasses", "boolean", !1, "trace class creation"));
|
|
b.traceDomain = m.register(new g("td", "traceDomain", "boolean", !1, "trace domain property access"));
|
|
b.debuggerMode = m.register(new g("db", "debuggerMode", "boolean", !0, "enable debugger mode"));
|
|
b.globalMultinameAnalysis = m.register(new g("ga", "globalMultinameAnalysis", "boolean", !1, "Global multiname analysis."));
|
|
b.codeCaching = m.register(new g("cc", "codeCaching", "boolean", !1, "Enable code caching."));
|
|
b.compilerEnableExceptions = m.register(new g("cex", "exceptions", "boolean", !1, "Compile functions with catch blocks."));
|
|
b.compilerMaximumMethodSize = m.register(new g("cmms", "maximumMethodSize", "number", 4096, "Compiler maximum method size."));
|
|
b = b.ExecutionMode || (b.ExecutionMode = {});
|
|
b[b.INTERPRET = 1] = "INTERPRET";
|
|
b[b.COMPILE = 2] = "COMPILE";
|
|
})(k.Runtime || (k.Runtime = {}));
|
|
(function(b) {
|
|
b.options = t.register(new f("Compiler"));
|
|
b.traceLevel = b.options.register(new g("tc4", "tc4", "number", 0, "Compiler Trace Level"));
|
|
b.breakFilter = b.options.register(new g("", "break", "string", "", "Set a break point at methods whose qualified name matches this string pattern."));
|
|
b.compileFilter = b.options.register(new g("", "compile", "string", "", "Only compile methods whose qualified name matches this string pattern."));
|
|
b.enableDirtyLocals = b.options.register(new g("dl", "dirtyLocals", "boolean", !0, "Performe dirty local analysis to minimise PHI nodes."));
|
|
})(k.Compiler || (k.Compiler = {}));
|
|
(function(b) {
|
|
b.options = t.register(new f("Verifier"));
|
|
b.enabled = b.options.register(new g("verifier", "verifier", "boolean", !0, "Enable verifier."));
|
|
b.traceLevel = b.options.register(new g("tv", "tv", "number", 0, "Verifier Trace Level"));
|
|
})(k.Verifier || (k.Verifier = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Namespace = Shumway.AVM2.ABC.Namespace;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(a) {
|
|
var c = this.resolutionMap[a.runtimeId];
|
|
if (c) {
|
|
return c;
|
|
}
|
|
var c = this.resolutionMap[a.runtimeId] = b.ObjectUtilities.createMap(), h = this.bindings, e;
|
|
for (e in h.map) {
|
|
var d = e, p = h.map[e].trait;
|
|
if (p.isGetter() || p.isSetter()) {
|
|
d = d.substring(g.Binding.KEY_PREFIX_LENGTH);
|
|
}
|
|
d = W.fromQualifiedName(d);
|
|
d.getNamespace().inNamespaceSet(a) && (c[d.getName()] = W.getQualifiedName(p.name));
|
|
}
|
|
return c;
|
|
}
|
|
function t(a, c, h) {
|
|
na(c) ? c = String(Q(c)) : "object" === typeof c && (c = String(c));
|
|
return b.isNumeric(c) ? b.toNumber(c) : a ? 1 < a.length ? (a = this.getNamespaceResolutionMap(a)[c]) ? a : W.getPublicQualifiedName(c) : W.qualifyName(a[0], c) : W.getPublicQualifiedName(c);
|
|
}
|
|
function s(a) {
|
|
return this.asGetProperty(void 0, a, 0);
|
|
}
|
|
function m(a, b, c) {
|
|
a = this.resolveMultinameProperty(a, b, c);
|
|
return this.asGetNumericProperty && W.isNumeric(a) ? this.asGetNumericProperty(a) : this[a];
|
|
}
|
|
function d(a) {
|
|
la(b.isString(a));
|
|
return this[a];
|
|
}
|
|
function a(a, b, c) {
|
|
b = b ? null : this;
|
|
var h = this.asOpenMethods;
|
|
return(b && h && h[a] ? h[a] : this[a]).asApply(b, c);
|
|
}
|
|
function c(a, b) {
|
|
return this.asSetProperty(void 0, a, 0, b);
|
|
}
|
|
function n(a, b) {
|
|
b === W.VALUE_OF ? (ia(a, "original_valueOf", a.valueOf), a.valueOf = g.forwardValueOf) : b === W.TO_STRING && (ia(a, "original_toString", a.toString), a.toString = g.forwardToString);
|
|
}
|
|
function p(a, b, c, h) {
|
|
"object" === typeof b && (b = String(b));
|
|
a = this.resolveMultinameProperty(a, b, c);
|
|
if (this.asSetNumericProperty && W.isNumeric(a)) {
|
|
return this.asSetNumericProperty(a, h);
|
|
}
|
|
(b = this.asSlots.byQN[a]) && (b = b.type) && b.coerce && (h = b.coerce(h));
|
|
n(this, a);
|
|
this[a] = h;
|
|
}
|
|
function e(a, b) {
|
|
return this.asDefineProperty(void 0, a, 0, b);
|
|
}
|
|
function q(a, b, c, h) {
|
|
"object" === typeof b && (b = String(b));
|
|
a = this.resolveMultinameProperty(a, b, c);
|
|
Object.defineProperty(this, a, h);
|
|
}
|
|
function l(a, b) {
|
|
return this.asCallProperty(void 0, a, 0, !1, b);
|
|
}
|
|
function u(a, b, c, h, e) {
|
|
g.traceCallExecution.value && ra.enter("call " + (this.class ? this.class + " " : "") + b + "(" + ya(e) + ") #" + ka.count(b));
|
|
h = h ? null : this;
|
|
a = this.resolveMultinameProperty(a, b, c);
|
|
this.asGetNumericProperty && W.isNumeric(a) ? a = this.asGetNumericProperty(a) : (b = this.asOpenMethods, a = h && b && b[a] ? b[a] : this[a]);
|
|
e = a.asApply(h, e);
|
|
0 < g.traceCallExecution.value && ra.leave("return " + va(e));
|
|
return e;
|
|
}
|
|
function w(a, b, c, h, e) {
|
|
g.traceCallExecution.value && ra.enter("call super " + (this.class ? this.class + " " : "") + c + "(" + ya(e) + ") #" + ka.count(c));
|
|
a = a.object.baseClass;
|
|
b = a.traitsPrototype.resolveMultinameProperty(b, c, h);
|
|
c = a.traitsPrototype.asOpenMethods;
|
|
la(c && c[b]);
|
|
e = c[b].asApply(this, e);
|
|
0 < g.traceCallExecution.value && ra.leave("return " + va(e));
|
|
return e;
|
|
}
|
|
function r(a, b, c, h, e) {
|
|
g.traceCallExecution.value && ra.enter("set super " + (this.class ? this.class + " " : "") + c + "(" + va(e) + ") #" + ka.count(c));
|
|
a = a.object.baseClass;
|
|
var d = a.traitsPrototype.resolveMultinameProperty(b, c, h);
|
|
this.asSlots.byQN[d] ? this.asSetProperty(b, c, h, e) : a.traitsPrototype[g.VM_OPEN_SET_METHOD_PREFIX + d].call(this, e);
|
|
0 < g.traceCallExecution.value && ra.leave("");
|
|
}
|
|
function h(a, b, c, h) {
|
|
g.traceCallExecution.value && ra.enter("get super " + (this.class ? this.class + " " : "") + c + " #" + ka.count(c));
|
|
a = a.object.baseClass;
|
|
var e = a.traitsPrototype.resolveMultinameProperty(b, c, h);
|
|
b = this.asSlots.byQN[e] ? this.asGetProperty(b, c, h) : a.traitsPrototype[g.VM_OPEN_GET_METHOD_PREFIX + e].call(this);
|
|
0 < g.traceCallExecution.value && ra.leave("return " + va(b));
|
|
return b;
|
|
}
|
|
function x(a, b) {
|
|
if (a.classInfo) {
|
|
var c = W.getQualifiedName(a.classInfo.instanceInfo.name);
|
|
if (c === W.String) {
|
|
return String.asApply(null, b);
|
|
}
|
|
if (c === W.Boolean) {
|
|
return Boolean.asApply(null, b);
|
|
}
|
|
if (c === W.Number) {
|
|
return Number.asApply(null, b);
|
|
}
|
|
}
|
|
c = a.instanceConstructor;
|
|
switch(b.length) {
|
|
case 0:
|
|
return new c;
|
|
case 1:
|
|
return new c(b[0]);
|
|
case 2:
|
|
return new c(b[0], b[1]);
|
|
case 3:
|
|
return new c(b[0], b[1], b[2]);
|
|
case 4:
|
|
return new c(b[0], b[1], b[2], b[3]);
|
|
case 5:
|
|
return new c(b[0], b[1], b[2], b[3], b[4]);
|
|
case 6:
|
|
return new c(b[0], b[1], b[2], b[3], b[4], b[5]);
|
|
case 7:
|
|
return new c(b[0], b[1], b[2], b[3], b[4], b[5], b[6]);
|
|
case 8:
|
|
return new c(b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7]);
|
|
case 9:
|
|
return new c(b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8]);
|
|
case 10:
|
|
return new c(b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9]);
|
|
}
|
|
for (var h = [], e = 0;e < b.length;e++) {
|
|
h[e + 1] = b[e];
|
|
}
|
|
return new (Function.bind.asApply(c, h));
|
|
}
|
|
function y(a, b, c, h) {
|
|
a = this.asGetProperty(a, b, c);
|
|
g.traceCallExecution.value && ra.enter("construct " + b + "(" + ya(h) + ") #" + ka.count(b));
|
|
b = x(a, h);
|
|
0 < g.traceCallExecution.value && ra.leave("return " + va(b));
|
|
return b;
|
|
}
|
|
function G(a, b, c) {
|
|
return this.resolveMultinameProperty(a, b, c) in this;
|
|
}
|
|
function I(a, b, c) {
|
|
a = this.resolveMultinameProperty(a, b, c);
|
|
return oa(this, a);
|
|
}
|
|
function C(a, b, c) {
|
|
a = this.resolveMultinameProperty(a, b, c);
|
|
return pa(this, a);
|
|
}
|
|
function E(a, b, c) {
|
|
return this.asHasTraitProperty(a, b, c) ? !1 : delete this[this.resolveMultinameProperty(a, b, c)];
|
|
}
|
|
function O(a, b, c) {
|
|
a = this.resolveMultinameProperty(a, b, c);
|
|
return 0 <= this.asBindings.indexOf(a);
|
|
}
|
|
function K(a) {
|
|
return this[a];
|
|
}
|
|
function F(a, b) {
|
|
this[a] = b;
|
|
}
|
|
function J(a) {
|
|
0 === a && ia(this, "asEnumerableKeys", this.asGetEnumerableKeys());
|
|
for (var b = this.asEnumerableKeys;a < b.length;) {
|
|
if (this.asHasProperty(void 0, b[a], 0)) {
|
|
return a + 1;
|
|
}
|
|
a++;
|
|
}
|
|
return 0;
|
|
}
|
|
function A(a) {
|
|
var b = this.asEnumerableKeys;
|
|
la(b && 0 < a && a < b.length + 1);
|
|
return b[a - 1];
|
|
}
|
|
function B(a) {
|
|
return this.asGetPublicProperty(this.asNextName(a));
|
|
}
|
|
function z(a) {
|
|
if (na(a.object)) {
|
|
a.index = 0, a.object = null;
|
|
} else {
|
|
var b = sa(a.object), c = b.asNextNameIndex(a.index);
|
|
if (0 < c) {
|
|
a.index = c, a.object = b;
|
|
} else {
|
|
for (;;) {
|
|
b = Object.getPrototypeOf(b);
|
|
if (!b) {
|
|
a.index = 0;
|
|
a.object = null;
|
|
break;
|
|
}
|
|
c = b.asNextNameIndex(0);
|
|
if (0 < c) {
|
|
a.index = c;
|
|
a.object = b;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function P() {
|
|
if (this instanceof String || this instanceof Number) {
|
|
return[];
|
|
}
|
|
for (var a = Object.keys(this), c = [], h = 0;h < a.length;h++) {
|
|
var e = a[h];
|
|
b.isNumeric(e) ? c.push(e) : (e = W.stripPublicQualifier(e), void 0 !== e && c.push(e));
|
|
}
|
|
return c;
|
|
}
|
|
function D(a, b) {
|
|
a || L("TypeError", k.Errors.NullPointerError, b);
|
|
}
|
|
function L(a, c) {
|
|
for (var h = 0;h < arguments.length - 2;h++) {
|
|
}
|
|
h = b.AVM2.formatErrorMessage.apply(null, Array.prototype.slice.call(arguments, 1));
|
|
M(g.AVM2.currentDomain(), a, h, c.code);
|
|
}
|
|
function M(a, b, c, h) {
|
|
throw new (a.getClass(b).instanceConstructor)(c, h);
|
|
}
|
|
function V(a, b) {
|
|
return a.coerce(b);
|
|
}
|
|
function Q(a) {
|
|
return "string" === typeof a ? a : void 0 == a ? null : a + "";
|
|
}
|
|
function U(a) {
|
|
return void 0 == a ? null : "string" === typeof a || "number" === typeof a ? a : Object(a);
|
|
}
|
|
function S(a, b) {
|
|
return String(a).localeCompare(String(b));
|
|
}
|
|
function aa(a) {
|
|
return a instanceof b.AVM2.AS.ASXML || a instanceof b.AVM2.AS.ASXMLList;
|
|
}
|
|
function $(b) {
|
|
"Object Number Boolean String Array Date RegExp".split(" ").forEach(function(a) {
|
|
wa(b[a].prototype, g.VM_NATIVE_PROTOTYPE_FLAG, !0);
|
|
});
|
|
ia(b.Object.prototype, "getNamespaceResolutionMap", f);
|
|
ia(b.Object.prototype, "resolveMultinameProperty", t);
|
|
ia(b.Object.prototype, "asGetProperty", m);
|
|
ia(b.Object.prototype, "asGetPublicProperty", s);
|
|
ia(b.Object.prototype, "asGetResolvedStringProperty", d);
|
|
ia(b.Object.prototype, "asSetProperty", p);
|
|
ia(b.Object.prototype, "asSetPublicProperty", c);
|
|
ia(b.Object.prototype, "asDefineProperty", q);
|
|
ia(b.Object.prototype, "asDefinePublicProperty", e);
|
|
ia(b.Object.prototype, "asCallProperty", u);
|
|
ia(b.Object.prototype, "asCallSuper", w);
|
|
ia(b.Object.prototype, "asGetSuper", h);
|
|
ia(b.Object.prototype, "asSetSuper", r);
|
|
ia(b.Object.prototype, "asCallPublicProperty", l);
|
|
ia(b.Object.prototype, "asCallResolvedStringProperty", a);
|
|
ia(b.Object.prototype, "asConstructProperty", y);
|
|
ia(b.Object.prototype, "asHasProperty", G);
|
|
ia(b.Object.prototype, "asHasPropertyInternal", G);
|
|
ia(b.Object.prototype, "asHasOwnProperty", I);
|
|
ia(b.Object.prototype, "asPropertyIsEnumerable", C);
|
|
ia(b.Object.prototype, "asHasTraitProperty", O);
|
|
ia(b.Object.prototype, "asDeleteProperty", E);
|
|
ia(b.Object.prototype, "asHasNext2", z);
|
|
ia(b.Object.prototype, "asNextName", A);
|
|
ia(b.Object.prototype, "asNextValue", B);
|
|
ia(b.Object.prototype, "asNextNameIndex", J);
|
|
ia(b.Object.prototype, "asGetEnumerableKeys", P);
|
|
ia(b.Function.prototype, "asCall", b.Function.prototype.call);
|
|
ia(b.Function.prototype, "asApply", b.Function.prototype.apply);
|
|
"Array Object Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" ").forEach(function(a) {
|
|
a in b ? (ia(b[a].prototype, "asGetNumericProperty", K), ia(b[a].prototype, "asSetNumericProperty", F)) : log(a + " was not found in globals");
|
|
});
|
|
b.Array.prototype.asGetProperty = function(a, b, c) {
|
|
return "number" === typeof b ? this[b] : m.call(this, a, b, c);
|
|
};
|
|
b.Array.prototype.asSetProperty = function(a, b, c, h) {
|
|
if ("number" === typeof b) {
|
|
this[b] = h;
|
|
} else {
|
|
return p.call(this, a, b, c, h);
|
|
}
|
|
};
|
|
}
|
|
function ea(a, b) {
|
|
b && (new g.CatchBindings(new g.Scope(null, this), b)).applyTo(a, this);
|
|
}
|
|
function Z(a, b) {
|
|
"undefined" === typeof b && (b = 0);
|
|
return Array.prototype.slice.call(a, b);
|
|
}
|
|
function v(a) {
|
|
return!a.hasBody || a.hasExceptions() && !g.compilerEnableExceptions.value || a.hasSetsDxns() || a.code.length > g.compilerMaximumMethodSize.value ? !1 : !0;
|
|
}
|
|
function X(a) {
|
|
return!v(a) || a.isClassInitializer || a.isScriptInitializer ? !1 : !0;
|
|
}
|
|
function ba(a) {
|
|
if (a.hasExceptions()) {
|
|
return!1;
|
|
}
|
|
a = a.holder;
|
|
a instanceof da && (a = a.instanceInfo);
|
|
if (a instanceof ja) {
|
|
switch(a.name.namespaces[0].uri) {
|
|
case "flash.geom":
|
|
;
|
|
case "flash.events":
|
|
return!0;
|
|
}
|
|
switch(a.name.getOriginalName()) {
|
|
case "com.google.youtube.model.VideoData":
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
}
|
|
function R(a) {
|
|
if (g.codeCaching.value) {
|
|
var b = g.CODE_CACHE[a.abc.hash];
|
|
if (b) {
|
|
b.isInitialized || (b.isInitialized = !0);
|
|
if (b = b.methods[a.index]) {
|
|
return log("Linking CC: " + a), k.countTimeline("Code Cache Hit"), b;
|
|
}
|
|
a.isInstanceInitializer || a.isClassInitializer ? k.countTimeline("Code Cache Query On Initializer") : (k.countTimeline("Code Cache MISS ON OTHER"), warn("Shouldn't MISS: " + a + " " + a.debugName));
|
|
k.countTimeline("Code Cache Miss");
|
|
} else {
|
|
warn("Cannot Find Code Cache For ABC, name: " + a.abc.name + ", hash: " + a.abc.hash), k.countTimeline("Code Cache ABC Miss");
|
|
}
|
|
}
|
|
}
|
|
function H(a, c, h) {
|
|
var e = !1, d = a.parameters.map(function(a) {
|
|
void 0 !== a.value && (e = !0);
|
|
return a.value;
|
|
});
|
|
h = h ? function(c) {
|
|
var h = this === jsGlobal ? c.global.object : this, p = Z(arguments, 1);
|
|
e && p.length < d.length && (p = p.concat(d.slice(p.length - d.length)));
|
|
return b.AVM2.Interpreter.interpretMethod(h, a, c, p);
|
|
} : function() {
|
|
var h = this === jsGlobal ? c.global.object : this, p = Z(arguments);
|
|
e && p.length < d.length && (p = p.concat(d.slice(arguments.length - d.length)));
|
|
return b.AVM2.Interpreter.interpretMethod(h, a, c, p);
|
|
};
|
|
a.hasSetsDxns() && (h = function(a) {
|
|
return function() {
|
|
var c = b.AVM2.AS.ASXML.defaultNamespace;
|
|
try {
|
|
var h = a.apply(this, arguments);
|
|
b.AVM2.AS.ASXML.defaultNamespace = c;
|
|
return h;
|
|
} catch (e) {
|
|
throw b.AVM2.AS.ASXML.defaultNamespace = c, e;
|
|
}
|
|
};
|
|
}(h));
|
|
h.instanceConstructor = h;
|
|
h.debugName = "Interpreter Function #" + Ga++;
|
|
return h;
|
|
}
|
|
function Y(a, c, h, e, d) {
|
|
d = R(a);
|
|
var p;
|
|
d || (p = k.Compiler.compileMethod(a, c, h));
|
|
c = a.name ? W.getQualifiedName(a.name) : "fn" + Aa;
|
|
a.holder && (h = "", a.holder instanceof da ? h = "static$" + a.holder.instanceInfo.name.getName() : a.holder instanceof ja ? h = a.holder.name.getName() : a.holder instanceof N && (h = "script"), c = h + "$" + c);
|
|
c = b.StringUtilities.escapeString(c);
|
|
a.verified && (c += "$V");
|
|
e || (h = b.AVM2.Compiler.breakFilter.value) && 0 <= c.search(h) && (e = !0);
|
|
h = p.body;
|
|
e && (h = "{ debugger; \n" + h + "}");
|
|
if (!d) {
|
|
var l = "function " + c + " (" + p.parameters.join(", ") + ") " + h
|
|
}
|
|
1 < g.traceFunctions.value && a.trace(new T, a.abc);
|
|
a.debugTrace = function() {
|
|
a.trace(new T, a.abc);
|
|
};
|
|
0 < g.traceFunctions.value && log(l);
|
|
e = d || (new Function("return " + l))();
|
|
e.debugName = "Compiled Function #" + Ha++;
|
|
return e;
|
|
}
|
|
function ga(a, c, h, e) {
|
|
la(!a.isNative(), "Method should have a builtin: " + a.name);
|
|
if (a.freeMethod) {
|
|
return h ? g.bindFreeMethodScope(a, c) : a.freeMethod;
|
|
}
|
|
var d;
|
|
if (d = g.checkMethodOverrides(a)) {
|
|
return la(!h), d;
|
|
}
|
|
ca(a);
|
|
d = !1;
|
|
1 !== a.abc.applicationDomain.mode && X(a) || ba(a) || (d = !0);
|
|
var p = b.AVM2.Compiler.compileFilter.value;
|
|
p && a.name && 0 > W.getQualifiedName(a.name).search(p) && (d = !0);
|
|
d ? a.freeMethod = H(a, c, h) : (Aa++, a.freeMethod = Y(a, c, h, e, a.isInstanceInitializer));
|
|
a.freeMethod.methodInfo = a;
|
|
return h ? g.bindFreeMethodScope(a, c) : a.freeMethod;
|
|
}
|
|
function ca(a) {
|
|
if (!a.analysis) {
|
|
a.analysis = new k.Analysis(a);
|
|
a.needsActivation() && (a.activationPrototype = new Ba(a), (new g.ActivationBindings(a)).applyTo(a.abc.applicationDomain, a.activationPrototype));
|
|
for (var b = a.exceptions, c = 0, h = b.length;c < h;c++) {
|
|
var e = b[c];
|
|
if (e.varName) {
|
|
var d = Object.create(ma.prototype);
|
|
d.kind = 0;
|
|
d.name = e.varName;
|
|
d.typeName = e.typeName;
|
|
d.holder = a;
|
|
e.scopeObject = new ea(a.abc.applicationDomain, d);
|
|
} else {
|
|
e.scopeObject = new ea(void 0, void 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
g.sealConstTraits = !1;
|
|
g.useAsAdd = !0;
|
|
var ka = new b.Metrics.Counter(!0), W = b.AVM2.ABC.Multiname, ha = b.AVM2.ABC.Namespace, da = b.AVM2.ABC.ClassInfo, ja = b.AVM2.ABC.InstanceInfo, N = b.AVM2.ABC.ScriptInfo, ma = b.AVM2.ABC.Trait, T = b.IndentingWriter, oa = b.ObjectUtilities.hasOwnProperty, pa = b.ObjectUtilities.propertyIsEnumerable, na = b.isNullOrUndefined, fa = b.ObjectUtilities.createEmptyObject, sa = b.ObjectUtilities.boxValue, xa = b.FunctionUtilities.bindSafely, la = b.Debug.assert, qa = b.ObjectUtilities.defineNonEnumerableGetterOrSetter,
|
|
ia = b.ObjectUtilities.defineNonEnumerableProperty, wa = b.ObjectUtilities.defineReadOnlyProperty, Ia = b.ObjectUtilities.defineNonEnumerableGetter, va = b.StringUtilities.toSafeString, ya = b.StringUtilities.toSafeArrayString;
|
|
g.VM_SLOTS = "asSlots";
|
|
g.VM_LENGTH = "asLength";
|
|
g.VM_BINDINGS = "asBindings";
|
|
g.VM_NATIVE_PROTOTYPE_FLAG = "asIsNative";
|
|
g.VM_OPEN_METHODS = "asOpenMethods";
|
|
g.VM_OPEN_METHOD_PREFIX = "m";
|
|
g.VM_MEMOIZER_PREFIX = "z";
|
|
g.VM_OPEN_SET_METHOD_PREFIX = "s";
|
|
g.VM_OPEN_GET_METHOD_PREFIX = "g";
|
|
g.SAVED_SCOPE_NAME = "$SS";
|
|
g.VM_METHOD_OVERRIDES = fa();
|
|
var Ga = 1, Ha = 1, Aa = 0;
|
|
g.isNativePrototype = function(a) {
|
|
return Object.prototype.hasOwnProperty.call(a, g.VM_NATIVE_PROTOTYPE_FLAG);
|
|
};
|
|
var ra = new T;
|
|
g.patch = function(a, c) {
|
|
la(b.isFunction(c));
|
|
for (var h = 0;h < a.length;h++) {
|
|
var e = a[h];
|
|
e.get ? qa(e.object, e.get, c, !0) : e.set ? qa(e.object, e.set, c, !1) : ia(e.object, e.name, c);
|
|
}
|
|
};
|
|
g.applyNonMemoizedMethodTrait = function(a, c, h, e, d) {
|
|
la(e);
|
|
if (c.isMethod()) {
|
|
var p = [{object:h, name:a}, {object:h, name:g.VM_OPEN_METHOD_PREFIX + a}];
|
|
c = g.makeTrampoline(c, e, d, p, c.methodInfo.parameters.length, "");
|
|
var l = xa(c, h);
|
|
wa(l, g.VM_LENGTH, c.asLength);
|
|
wa(l, W.getPublicQualifiedName("prototype"), null);
|
|
ia(h, a, l);
|
|
ia(h, g.VM_OPEN_METHOD_PREFIX + a, l);
|
|
} else {
|
|
if (c.isGetter() || c.isSetter()) {
|
|
var p = [{object:h}], n = 0;
|
|
(l = c.isGetter()) ? p[0].get = a : (p[0].set = a, n = 1);
|
|
c = g.makeTrampoline(c, e, d, p, n, "");
|
|
qa(h, a, c, l);
|
|
} else {
|
|
b.Debug.unexpected(c);
|
|
}
|
|
}
|
|
};
|
|
g.applyMemoizedMethodTrait = function(a, b, c, h, e) {
|
|
la(h, b);
|
|
if (b.isMethod()) {
|
|
var d = {value:null}, p = c.asOpenMethods, l = [{object:d, name:"value"}, {object:p, name:a}, {object:c, name:g.VM_OPEN_METHOD_PREFIX + a}];
|
|
b = g.makeTrampoline(b, h, e, l, b.methodInfo.parameters.length, String(b.name));
|
|
d.value = b;
|
|
p[a] = b;
|
|
ia(c, g.VM_OPEN_METHOD_PREFIX + a, b);
|
|
Ia(c, a, g.makeMemoizer(a, d));
|
|
n(c, a);
|
|
} else {
|
|
b.isGetter() ? (l = [{object:c, get:a}, {object:c, name:g.VM_OPEN_GET_METHOD_PREFIX + a}], b = g.makeTrampoline(b, h, e, l, 0, String(b.name)), ia(c, g.VM_OPEN_GET_METHOD_PREFIX + a, b), qa(c, a, b, !0)) : b.isSetter() && (l = [{object:c, set:a}, {object:c, name:g.VM_OPEN_SET_METHOD_PREFIX + a}], b = g.makeTrampoline(b, h, e, l, 0, String(b.name)), ia(c, g.VM_OPEN_SET_METHOD_PREFIX + a, b), qa(c, a, b, !1));
|
|
}
|
|
};
|
|
g.getNamespaceResolutionMap = f;
|
|
g.resolveMultinameProperty = t;
|
|
g.asGetPublicProperty = s;
|
|
g.asGetProperty = m;
|
|
g.asGetResolvedStringProperty = d;
|
|
g.asCallResolvedStringProperty = a;
|
|
g.asGetResolvedStringPropertyFallback = function(a) {
|
|
a = W.getNameFromPublicQualifiedName(a);
|
|
return this.asGetProperty([ha.PUBLIC], a, 0);
|
|
};
|
|
g.asSetPublicProperty = c;
|
|
g.forwardValueOf = new Function("", "return this." + W.VALUE_OF + ".apply(this, arguments)");
|
|
g.forwardToString = new Function("", "return this." + W.TO_STRING + ".apply(this, arguments)");
|
|
g.asSetProperty = p;
|
|
g.asDefinePublicProperty = e;
|
|
g.asDefineProperty = q;
|
|
g.asCallPublicProperty = l;
|
|
g.asCallProperty = u;
|
|
g.asCallSuper = w;
|
|
g.asSetSuper = r;
|
|
g.asGetSuper = h;
|
|
g.construct = x;
|
|
g.asConstructProperty = y;
|
|
g.asHasProperty = G;
|
|
g.asHasOwnProperty = I;
|
|
g.asPropertyIsEnumerable = C;
|
|
g.asDeleteProperty = E;
|
|
g.asHasTraitProperty = O;
|
|
g.asGetNumericProperty = K;
|
|
g.asSetNumericProperty = F;
|
|
g.asGetDescendants = function(a, c, h) {
|
|
b.Debug.notImplemented("asGetDescendants");
|
|
};
|
|
g.asNextNameIndex = J;
|
|
g.asNextName = A;
|
|
g.asNextValue = B;
|
|
g.asHasNext2 = z;
|
|
g.asGetEnumerableKeys = P;
|
|
g.asTypeOf = function(a) {
|
|
if (a) {
|
|
if (a.constructor === String) {
|
|
return "string";
|
|
}
|
|
if (a.constructor === Number) {
|
|
return "number";
|
|
}
|
|
if (a.constructor === Boolean) {
|
|
return "boolean";
|
|
}
|
|
if (a instanceof b.AVM2.AS.ASXML || a instanceof b.AVM2.AS.ASXMLList) {
|
|
return "xml";
|
|
}
|
|
if (b.AVM2.AS.ASClass.isType(a)) {
|
|
return "object";
|
|
}
|
|
}
|
|
return typeof a;
|
|
};
|
|
g.publicizeProperties = function(a) {
|
|
for (var b = Object.keys(a), c = 0;c < b.length;c++) {
|
|
var h = b[c];
|
|
if (!W.isPublicQualifiedName(h)) {
|
|
var e = a[h];
|
|
a[W.getPublicQualifiedName(h)] = e;
|
|
delete a[h];
|
|
}
|
|
}
|
|
};
|
|
g.asGetSlot = function(a, b) {
|
|
return a[a.asSlots.byID[b].name];
|
|
};
|
|
g.asSetSlot = function(a, b, c) {
|
|
b = a.asSlots.byID[b];
|
|
if (!b.const) {
|
|
var h = b.type;
|
|
a[b.name] = h && h.coerce ? h.coerce(c) : c;
|
|
}
|
|
};
|
|
g.asCheckVectorSetNumericProperty = function(a, c, h) {
|
|
(0 > a || a > c || a === c && h || !b.isNumeric(a)) && L("RangeError", k.Errors.OutOfRangeError, a, c);
|
|
};
|
|
g.asCheckVectorGetNumericProperty = function(a, c) {
|
|
(0 > a || a >= c || !b.isNumeric(a)) && L("RangeError", k.Errors.OutOfRangeError, a, c);
|
|
};
|
|
g.checkNullParameter = D;
|
|
g.checkParameterType = function(a, b, c) {
|
|
D(a, b);
|
|
c.isType(a) || L("TypeError", k.Errors.CheckTypeFailedError, a, c.classInfo.instanceInfo.name.getOriginalName());
|
|
};
|
|
g.throwError = L;
|
|
g.throwErrorFromVM = M;
|
|
g.translateError = function(a, c) {
|
|
if (c instanceof Error) {
|
|
var h = a.getClass(c.name);
|
|
if (h) {
|
|
return new h.instanceConstructor(b.AVM2.translateErrorMessage(c));
|
|
}
|
|
b.Debug.unexpected("Can't translate error: " + c);
|
|
}
|
|
return c;
|
|
};
|
|
g.asIsInstanceOf = function(a, b) {
|
|
return a.isInstanceOf(b);
|
|
};
|
|
g.asIsType = function(a, b) {
|
|
return a.isType(b);
|
|
};
|
|
g.asAsType = function(a, b) {
|
|
return a.isType(b) ? b : null;
|
|
};
|
|
g.asCoerceByMultiname = function(a, b, c) {
|
|
la(b.isQName());
|
|
switch(W.getQualifiedName(b)) {
|
|
case W.Int:
|
|
return c | 0;
|
|
case W.Uint:
|
|
return c >>> 0;
|
|
case W.String:
|
|
return Q(c);
|
|
case W.Number:
|
|
return+c;
|
|
case W.Boolean:
|
|
return!!c;
|
|
case W.Object:
|
|
return U(c);
|
|
}
|
|
return V(a.abc.applicationDomain.getType(b), c);
|
|
};
|
|
g.asCoerce = V;
|
|
g.asCoerceString = Q;
|
|
g.asCoerceInt = function(a) {
|
|
return a | 0;
|
|
};
|
|
g.asCoerceUint = function(a) {
|
|
return a >>> 0;
|
|
};
|
|
g.asCoerceNumber = function(a) {
|
|
return+a;
|
|
};
|
|
g.asCoerceBoolean = function(a) {
|
|
return!!a;
|
|
};
|
|
g.asCoerceObject = U;
|
|
g.asDefaultCompareFunction = S;
|
|
g.asCompare = function(a, c, h, e) {
|
|
b.Debug.assertNotImplemented(!(h & 4), "UNIQUESORT");
|
|
b.Debug.assertNotImplemented(!(h & 8), "RETURNINDEXEDARRAY");
|
|
var d = 0;
|
|
e || (e = S);
|
|
h & 1 && (a = String(a).toLowerCase(), c = String(c).toLowerCase());
|
|
h & 16 ? (a = b.toNumber(a), c = b.toNumber(c), d = a < c ? -1 : a > c ? 1 : 0) : d = e(a, c);
|
|
h & 2 && (d *= -1);
|
|
return d;
|
|
};
|
|
g.asAdd = function(a, b) {
|
|
return "string" === typeof a || "string" === typeof b ? String(a) + String(b) : a + b;
|
|
};
|
|
g.getDescendants = function(a, b) {
|
|
if (!aa(a)) {
|
|
throw "Not XML object in getDescendants";
|
|
}
|
|
return a.descendants(b);
|
|
};
|
|
g.checkFilter = function(a) {
|
|
if (!a.class || !aa(a)) {
|
|
throw "TypeError operand of childFilter not of XML type";
|
|
}
|
|
return a;
|
|
};
|
|
g.initializeGlobalObject = $;
|
|
$(jsGlobal);
|
|
g.nameInTraits = function(a, b) {
|
|
if (a.hasOwnProperty(g.VM_BINDINGS) && a.hasOwnProperty(b)) {
|
|
return!0;
|
|
}
|
|
var c = Object.getPrototypeOf(a);
|
|
return c.hasOwnProperty(g.VM_BINDINGS) && c.hasOwnProperty(b);
|
|
};
|
|
g.CatchScopeObject = ea;
|
|
var ta = function() {
|
|
function a(b) {
|
|
this.scriptInfo = b;
|
|
b.global = this;
|
|
this.scriptBindings = new g.ScriptBindings(b, new g.Scope(null, this, !1));
|
|
this.scriptBindings.applyTo(b.abc.applicationDomain, this);
|
|
b.loaded = !0;
|
|
}
|
|
a.prototype.toString = function() {
|
|
return "[object global]";
|
|
};
|
|
a.prototype.isExecuted = function() {
|
|
return this.scriptInfo.executed;
|
|
};
|
|
a.prototype.isExecuting = function() {
|
|
return this.scriptInfo.executing;
|
|
};
|
|
a.prototype.ensureExecuted = function() {
|
|
b.AVM2.Runtime.ensureScriptIsExecuted(this.scriptInfo);
|
|
};
|
|
return a;
|
|
}();
|
|
g.Global = ta;
|
|
ia(ta.prototype, W.getPublicQualifiedName("toString"), function() {
|
|
return this.toString();
|
|
});
|
|
ta = function() {
|
|
function a(b) {
|
|
this._isLazyInitializer = !0;
|
|
la(!b.asLazyInitializer);
|
|
this._target = b;
|
|
this._resolved = null;
|
|
}
|
|
a.create = function(b) {
|
|
return b.asLazyInitializer ? b.asLazyInitializer : b.asLazyInitializer = new a(b);
|
|
};
|
|
a.prototype.resolve = function() {
|
|
if (this._resolved) {
|
|
return this._resolved;
|
|
}
|
|
if (this._target instanceof N) {
|
|
var a = this._target;
|
|
g.ensureScriptIsExecuted(a, "Lazy Initializer");
|
|
return this._resolved = a.global;
|
|
}
|
|
if (this._target instanceof da) {
|
|
return a = this._target, a.classObject ? this._resolved = a.classObject : this._resolved = a.abc.applicationDomain.getProperty(a.instanceInfo.name, !1, !1);
|
|
}
|
|
b.Debug.notImplemented(String(this._target));
|
|
};
|
|
return a;
|
|
}();
|
|
g.LazyInitializer = ta;
|
|
g.forEachPublicProperty = function(a, c, h) {
|
|
if (!a.asBindings) {
|
|
for (var e in a) {
|
|
c.call(h, e, a[e]);
|
|
}
|
|
} else {
|
|
for (e in a) {
|
|
if (b.isNumeric(e)) {
|
|
c.call(h, e, a[e]);
|
|
} else {
|
|
if (W.isPublicQualifiedName(e) && 0 > a.asBindings.indexOf(e)) {
|
|
var d = W.stripPublicQualifier(e);
|
|
c.call(h, d, a[e]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
g.wrapJSObject = function(a) {
|
|
var b = Object.create(a), c;
|
|
for (c in a) {
|
|
Object.defineProperty(b, W.getPublicQualifiedName(c), function(a, b) {
|
|
return{get:function() {
|
|
return a[b];
|
|
}, set:function(c) {
|
|
a[b] = c;
|
|
}, enumerable:!0};
|
|
}(a, c));
|
|
}
|
|
return b;
|
|
};
|
|
g.asCreateActivation = function(a) {
|
|
return Object.create(a.activationPrototype);
|
|
};
|
|
ta = function() {
|
|
function a() {
|
|
}
|
|
a.updateTraits = function(c) {
|
|
for (var h = 0;h < c.length;h++) {
|
|
var e = c[h], d = e.name.name, e = e.name.getNamespace();
|
|
e.isDynamic() || (a.hasNonDynamicNamespaces[d] = !0, a.wasResolved[d] && b.Debug.notImplemented("We have to the undo the optimization, " + d + " can now bind to " + e));
|
|
}
|
|
};
|
|
a.loadAbc = function(b) {
|
|
if (g.globalMultinameAnalysis.value) {
|
|
var c = b.scripts, h = b.classes;
|
|
b = b.methods;
|
|
for (var e = 0;e < c.length;e++) {
|
|
a.updateTraits(c[e].traits);
|
|
}
|
|
for (e = 0;e < h.length;e++) {
|
|
a.updateTraits(h[e].traits), a.updateTraits(h[e].instanceInfo.traits);
|
|
}
|
|
for (e = 0;e < b.length;e++) {
|
|
b[e].traits && a.updateTraits(b[e].traits);
|
|
}
|
|
}
|
|
};
|
|
a.resolveMultiname = function(b) {
|
|
var c = b.name;
|
|
if (!a.hasNonDynamicNamespaces[c]) {
|
|
return a.wasResolved[c] = !0, new W([ha.PUBLIC], b.name);
|
|
}
|
|
};
|
|
a.hasNonDynamicNamespaces = fa();
|
|
a.wasResolved = fa();
|
|
return a;
|
|
}();
|
|
g.GlobalMultinameResolver = ta;
|
|
var Ba = function() {
|
|
return function(a) {
|
|
this.methodInfo = a;
|
|
};
|
|
}();
|
|
g.ActivationInfo = Ba;
|
|
g.HasNext2Info = function() {
|
|
return function(a, b) {
|
|
this.object = a;
|
|
this.index = b;
|
|
};
|
|
}();
|
|
g.sliceArguments = Z;
|
|
g.canCompile = v;
|
|
g.shouldCompile = X;
|
|
g.forceCompile = ba;
|
|
g.CODE_CACHE = fa();
|
|
g.searchCodeCache = R;
|
|
g.createInterpretedFunction = H;
|
|
g.debugName = function(a) {
|
|
return b.isFunction(a) ? a.debugName : a;
|
|
};
|
|
g.createCompiledFunction = Y;
|
|
g.createFunction = ga;
|
|
g.ensureFunctionIsInitialized = ca;
|
|
g.getTraitFunction = function(a, c, h) {
|
|
la(c);
|
|
la(a.isMethod() || a.isGetter() || a.isSetter());
|
|
var e = a.methodInfo, d;
|
|
if (e.isNative()) {
|
|
if ((c = a.metadata) && c.native ? d = b.AVM2.AS.getNative(c.native.value[0].value) : h && (d = b.AVM2.AS.getMethodOrAccessorNative(a, h)), !d) {
|
|
return b.Debug.warning("No native method for: " + a.kindName() + " " + e.holder + "::" + W.getQualifiedName(e.name) + ", make sure you've got the static keyword for static methods."), function(c) {
|
|
return function() {
|
|
b.Debug.warning("Calling undefined native method: " + a.kindName() + " " + c.holder.name + "::" + W.getQualifiedName(c.name));
|
|
};
|
|
}(e);
|
|
}
|
|
} else {
|
|
2 <= g.traceExecution.value && log("Creating Function For Trait: " + a.holder + " " + a), d = ga(e, c, !1, !1), la(d);
|
|
}
|
|
3 <= g.traceExecution.value && log("Made Function: " + W.getQualifiedName(e.name));
|
|
return d;
|
|
};
|
|
g.createClass = function(a, c, h) {
|
|
var e = a.instanceInfo, d = a.abc.applicationDomain, p = W.getName(e.name);
|
|
k.enterTimeline("createClass", {className:p, classInfo:a});
|
|
g.traceExecution.value && log("Creating " + (e.isInterface() ? "Interface" : "Class") + ": " + p + (a.native ? " replaced with native " + a.native.cls : ""));
|
|
c = e.isInterface() ? b.AVM2.AS.createInterface(a) : b.AVM2.AS.createClass(a, c, h);
|
|
g.traceClasses.value && (d.loadedClasses.push(c), d.traceLoadedClasses());
|
|
if (e.isInterface()) {
|
|
return k.leaveTimeline(), c;
|
|
}
|
|
d.onMessage.notify1("classCreated", c);
|
|
a.classObject = c;
|
|
g.traceExecution.value && log("Running " + (e.isInterface() ? "Interface" : "Class") + ": " + p + " Static Constructor");
|
|
k.enterTimeline("staticInitializer");
|
|
ga(a.init, h, !1, !1).call(c);
|
|
k.leaveTimeline();
|
|
g.traceExecution.value && log("Done With Static Constructor");
|
|
g.sealConstTraits && this.sealConstantTraits(c, a.traits);
|
|
k.leaveTimeline();
|
|
return c;
|
|
};
|
|
g.sealConstantTraits = function(a, b) {
|
|
for (var c = 0, h = b.length;c < h;c++) {
|
|
var e = b[c];
|
|
e.isConst() && (e = W.getQualifiedName(e.name), function(b, c) {
|
|
Object.defineProperty(a, b, {configurable:!1, enumerable:!1, get:function() {
|
|
return c;
|
|
}, set:function() {
|
|
M(g.AVM2.currentDomain(), "ReferenceError", "Illegal write to read-only property " + b + ".", 0);
|
|
}});
|
|
}(e, a[e]));
|
|
}
|
|
};
|
|
g.applyType = function(a, c, h) {
|
|
c = c.classInfo.instanceInfo.name.name;
|
|
if ("Vector" === c) {
|
|
la(1 === h.length);
|
|
h = h[0];
|
|
if (!na(h)) {
|
|
switch(c = h.classInfo.instanceInfo.name.name.toLowerCase(), c) {
|
|
case "number":
|
|
c = "double";
|
|
case "int":
|
|
;
|
|
case "uint":
|
|
;
|
|
case "double":
|
|
return a.abc.applicationDomain.getClass("packageInternal __AS3__.vec.Vector$" + c);
|
|
}
|
|
}
|
|
return a.abc.applicationDomain.getClass("packageInternal __AS3__.vec.Vector$object").applyType(h);
|
|
}
|
|
b.Debug.notImplemented(c);
|
|
};
|
|
g.createName = function(a, b) {
|
|
return new W(a, b);
|
|
};
|
|
})(k.Runtime || (k.Runtime = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var CC = Shumway.AVM2.Runtime.CODE_CACHE, HasNext2Info = Shumway.AVM2.Runtime.HasNext2Info, asCreateActivation = Shumway.AVM2.Runtime.asCreateActivation, asIsInstanceOf = Shumway.AVM2.Runtime.asIsInstanceOf, asIsType = Shumway.AVM2.Runtime.asIsType, asAsType = Shumway.AVM2.Runtime.asAsType, asTypeOf = Shumway.AVM2.Runtime.asTypeOf, asCoerceByMultiname = Shumway.AVM2.Runtime.asCoerceByMultiname, asCoerce = Shumway.AVM2.Runtime.asCoerce, asCoerceString = Shumway.AVM2.Runtime.asCoerceString, asCoerceInt =
|
|
Shumway.AVM2.Runtime.asCoerceInt, asCoerceUint = Shumway.AVM2.Runtime.asCoerceUint, asCoerceNumber = Shumway.AVM2.Runtime.asCoerceNumber, asCoerceBoolean = Shumway.AVM2.Runtime.asCoerceBoolean, asCoerceObject = Shumway.AVM2.Runtime.asCoerceObject, asCompare = Shumway.AVM2.Runtime.asCompare, asAdd = Shumway.AVM2.Runtime.asAdd, applyType = Shumway.AVM2.Runtime.applyType, asGetSlot = Shumway.AVM2.Runtime.asGetSlot, asSetSlot = Shumway.AVM2.Runtime.asSetSlot, asHasNext2 = Shumway.AVM2.Runtime.asHasNext2,
|
|
getDescendants = Shumway.AVM2.Runtime.getDescendants, checkFilter = Shumway.AVM2.Runtime.checkFilter, sliceArguments = Shumway.AVM2.Runtime.sliceArguments, createFunction = Shumway.AVM2.Runtime.createFunction, createName = Shumway.AVM2.Runtime.createName;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.AVM2.ABC.Multiname, t = b.ObjectUtilities.createEmptyObject, s = b.Debug.assert, m = b.ObjectUtilities.boxValue, d = function() {
|
|
function a(a, d, p) {
|
|
"undefined" === typeof p && (p = !1);
|
|
this.parent = a;
|
|
this.object = m(d);
|
|
s(b.isObject(this.object));
|
|
this.global = a ? a.global : this;
|
|
this.isWith = p;
|
|
this.cache = t();
|
|
}
|
|
a.prototype.findDepth = function(a) {
|
|
for (var b = this, d = 0;b;) {
|
|
if (b.object === a) {
|
|
return d;
|
|
}
|
|
d++;
|
|
b = b.parent;
|
|
}
|
|
return-1;
|
|
};
|
|
a.prototype.getScopeObjects = function() {
|
|
for (var a = [], b = this;b;) {
|
|
a.unshift(b.object), b = b.parent;
|
|
}
|
|
return a;
|
|
};
|
|
a.prototype.findScopeProperty = function(a, d, p, e, q, l) {
|
|
k.countTimeline("findScopeProperty");
|
|
var g, w;
|
|
w = a ? 1 < a.length ? a.runtimeId + "$" + d : a[0].qualifiedName + "$" + d : d;
|
|
if (!l && (g = this.cache[w])) {
|
|
return g;
|
|
}
|
|
if (this.object.asHasPropertyInternal(a, d, p)) {
|
|
return this.isWith ? this.object : this.cache[w] = this.object;
|
|
}
|
|
if (this.parent) {
|
|
return this.cache[w] = this.parent.findScopeProperty(a, d, p, e, q, l);
|
|
}
|
|
if (l) {
|
|
return null;
|
|
}
|
|
if (g = e.abc.applicationDomain.findDomainProperty(new f(a, d, p), q, !0)) {
|
|
return g;
|
|
}
|
|
q && b.Debug.unexpected("Cannot find property " + d);
|
|
return this.global.object;
|
|
};
|
|
return a;
|
|
}();
|
|
g.Scope = d;
|
|
g.bindFreeMethodScope = function(a, b) {
|
|
var d = a.freeMethod;
|
|
if (a.lastBoundMethod && a.lastBoundMethod.scope === b) {
|
|
return a.lastBoundMethod.boundMethod;
|
|
}
|
|
s(d, "There should already be a cached method.");
|
|
var p, e = b.global.object;
|
|
if (!a.hasOptional() && !a.needsArguments() && !a.needsRest()) {
|
|
switch(a.parameters.length) {
|
|
case 0:
|
|
p = function() {
|
|
return d.call(this === jsGlobal ? e : this, b);
|
|
};
|
|
break;
|
|
case 1:
|
|
p = function(a) {
|
|
return d.call(this === jsGlobal ? e : this, b, a);
|
|
};
|
|
break;
|
|
case 2:
|
|
p = function(a, p) {
|
|
return d.call(this === jsGlobal ? e : this, b, a, p);
|
|
};
|
|
break;
|
|
case 3:
|
|
p = function(a, p, f) {
|
|
return d.call(this === jsGlobal ? e : this, b, a, p, f);
|
|
};
|
|
}
|
|
}
|
|
p || (k.countTimeline("Bind Scope - Slow Path"), p = function() {
|
|
Array.prototype.unshift.call(arguments, b);
|
|
return d.asApply(this === jsGlobal ? b.global.object : this, arguments);
|
|
});
|
|
p.methodInfo = a;
|
|
p.instanceConstructor = p;
|
|
a.lastBoundMethod = {scope:b, boundMethod:p};
|
|
return p;
|
|
};
|
|
})(k.Runtime || (k.Runtime = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Scope = Shumway.AVM2.Runtime.Scope;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.AVM2.ABC.Multiname, t = b.AVM2.ABC.Trait, s = b.ObjectUtilities.hasOwnProperty, m = b.ObjectUtilities.createMap, d = b.ObjectUtilities.cloneObject, a = b.ObjectUtilities.copyProperties, c = b.ObjectUtilities.createEmptyObject, n = b.Debug.assert, p = b.ObjectUtilities.defineNonEnumerableProperty, e = b.ObjectUtilities.defineNonEnumerableGetter, q = b.FunctionUtilities.makeForwardingGetter, l = b.ArrayUtilities.pushUnique, u = function() {
|
|
function a(b) {
|
|
this.trait = b;
|
|
}
|
|
a.getKey = function(b, c) {
|
|
var h = b;
|
|
c.isGetter() ? h = a.GET_PREFIX + b : c.isSetter() && (h = a.SET_PREFIX + b);
|
|
return h;
|
|
};
|
|
a.prototype.toString = function() {
|
|
return String(this.trait);
|
|
};
|
|
a.SET_PREFIX = "set ";
|
|
a.GET_PREFIX = "get ";
|
|
a.KEY_PREFIX_LENGTH = 4;
|
|
return a;
|
|
}();
|
|
g.Binding = u;
|
|
var w = function() {
|
|
return function(a, b, c, h) {
|
|
this.name = a;
|
|
this.isConst = b;
|
|
this.type = c;
|
|
this.trait = h;
|
|
};
|
|
}();
|
|
g.SlotInfo = w;
|
|
var r = function() {
|
|
return function() {
|
|
this.byID = m();
|
|
this.byQN = m();
|
|
};
|
|
}();
|
|
g.SlotInfoMap = r;
|
|
var h = function() {
|
|
function a() {
|
|
this.map = m();
|
|
this.slots = [];
|
|
this.nextSlotId = 1;
|
|
}
|
|
a.prototype.assignNextSlot = function(a) {
|
|
n(a instanceof t);
|
|
n(a.isSlot() || a.isConst() || a.isClass());
|
|
a.slotId ? this.nextSlotId = a.slotId + 1 : a.slotId = this.nextSlotId++;
|
|
n(!this.slots[a.slotId], "Trait slot already taken.");
|
|
this.slots[a.slotId] = a;
|
|
};
|
|
a.prototype.trace = function(a) {
|
|
a.enter("Bindings");
|
|
for (var b in this.map) {
|
|
var c = this.map[b];
|
|
a.writeLn(c.trait.kindName() + ": " + b + " -> " + c);
|
|
}
|
|
a.leaveAndEnter();
|
|
a.writeArray(this.slots);
|
|
a.outdent();
|
|
};
|
|
a.prototype.applyTo = function(a, b, c) {
|
|
"undefined" === typeof c && (c = !1);
|
|
c || (n(!s(b, g.VM_SLOTS), "Already has VM_SLOTS."), n(!s(b, g.VM_BINDINGS), "Already has VM_BINDINGS."), n(!s(b, g.VM_OPEN_METHODS), "Already has VM_OPEN_METHODS."), p(b, g.VM_SLOTS, new r), p(b, g.VM_BINDINGS, []), p(b, g.VM_OPEN_METHODS, m()), p(b, "bindings", this), p(b, "resolutionMap", []));
|
|
G && G.greenLn("Applying Traits" + (c ? " (Append)" : ""));
|
|
for (var h in this.map) {
|
|
var d = this.map[h];
|
|
c = d.trait;
|
|
var x = f.getQualifiedName(c.name);
|
|
if (c.isSlot() || c.isConst() || c.isClass()) {
|
|
d = void 0;
|
|
if (c.isSlot() || c.isConst()) {
|
|
if (c.hasDefaultValue) {
|
|
d = c.value;
|
|
} else {
|
|
if (c.typeName) {
|
|
var I = a.findClassInfo(c.typeName);
|
|
I && (d = I.defaultValue);
|
|
}
|
|
}
|
|
}
|
|
h !== x ? (G && G.yellowLn("Binding Trait: " + h + " -> " + x), e(b, h, q(x)), l(b.asBindings, h)) : (G && G.greenLn("Applying Trait " + c.kindName() + ": " + c), p(b, x, d), l(b.asBindings, x), d = new w(x, c.isConst(), c.typeName ? a.getProperty(c.typeName, !1, !1) : null, c), b.asSlots.byID[c.slotId] = d, b.asSlots.byQN[x] = d);
|
|
} else {
|
|
if (c.isMethod() || c.isGetter() || c.isSetter()) {
|
|
if (c.isGetter() || c.isSetter()) {
|
|
h = h.substring(u.KEY_PREFIX_LENGTH);
|
|
}
|
|
h !== x ? G && G.yellowLn("Binding Trait: " + h + " -> " + x) : G && G.greenLn("Applying Trait " + c.kindName() + ": " + c);
|
|
l(b.asBindings, h);
|
|
this instanceof y ? (k.enterTimeline("applyNonMemoizedMethodTrait"), g.applyNonMemoizedMethodTrait(h, c, b, d.scope, d.natives)) : (k.enterTimeline("applyMemoizedMethodTrait"), g.applyMemoizedMethodTrait(h, c, b, d.scope, d.natives));
|
|
k.leaveTimeline();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
return a;
|
|
}();
|
|
g.Bindings = h;
|
|
var x = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
n(c.needsActivation());
|
|
this.methodInfo = c;
|
|
c = c.traits;
|
|
for (var h = 0;h < c.length;h++) {
|
|
var e = c[h];
|
|
n(e.isSlot() || e.isConst(), "Only slot or constant traits are allowed in activation objects.");
|
|
var d = f.getQualifiedName(e.name);
|
|
this.map[d] = new u(e);
|
|
this.assignNextSlot(e);
|
|
}
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(h);
|
|
g.ActivationBindings = x;
|
|
x = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
var e = f.getQualifiedName(h.name);
|
|
this.map[e] = new u(h);
|
|
n(h.isSlot(), "Only slot traits are allowed in catch objects.");
|
|
this.assignNextSlot(h);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(h);
|
|
g.CatchBindings = x;
|
|
var y = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.scope = h;
|
|
this.scriptInfo = c;
|
|
for (var e = c.traits, d = 0;d < e.length;d++) {
|
|
var p = e[d], l = f.getQualifiedName(p.name), l = u.getKey(l, p), l = this.map[l] = new u(p);
|
|
(p.isSlot() || p.isConst() || p.isClass()) && this.assignNextSlot(p);
|
|
p.isClass() && p.metadata && p.metadata.native && (p.classInfo.native = p.metadata.native);
|
|
if (p.isMethod() || p.isGetter() || p.isSetter()) {
|
|
l.scope = this.scope;
|
|
}
|
|
}
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(h);
|
|
g.ScriptBindings = y;
|
|
x = function(a) {
|
|
function b(c, h, e) {
|
|
a.call(this);
|
|
this.scope = h;
|
|
this.natives = e;
|
|
this.classInfo = c;
|
|
c = c.traits;
|
|
for (h = 0;h < c.length;h++) {
|
|
e = c[h];
|
|
var d = f.getQualifiedName(e.name), d = u.getKey(d, e), d = this.map[d] = new u(e);
|
|
(e.isSlot() || e.isConst()) && this.assignNextSlot(e);
|
|
if (e.isMethod() || e.isGetter() || e.isSetter()) {
|
|
d.scope = this.scope, d.natives = this.natives;
|
|
}
|
|
}
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(h);
|
|
g.ClassBindings = x;
|
|
h = function(b) {
|
|
function h(a, e, p, l) {
|
|
b.call(this);
|
|
this.scope = p;
|
|
this.natives = l;
|
|
this.parent = a;
|
|
this.instanceInfo = e;
|
|
this.implementedInterfaces = a ? d(a.implementedInterfaces) : c();
|
|
a && (this.slots = a.slots.slice(), this.nextSlotId = a.nextSlotId);
|
|
this.extend(a);
|
|
}
|
|
__extends(h, b);
|
|
h.prototype.extend = function(b) {
|
|
var c = this.instanceInfo, h, e = this.map, d, p, l, q;
|
|
if (b) {
|
|
for (p in b.map) {
|
|
d = b.map[p], l = d.trait, e[p] = d, l.isProtected() && (q = f.getQualifiedName(new f([c.protectedNs], l.name.getName())), q = u.getKey(q, l), e[q] = d);
|
|
}
|
|
}
|
|
var r = c.traits;
|
|
for (b = 0;b < r.length;b++) {
|
|
l = r[b];
|
|
d = f.getQualifiedName(l.name);
|
|
p = u.getKey(d, l);
|
|
d = new u(l);
|
|
h = e;
|
|
q = d;
|
|
var x = q.trait, w = h[p];
|
|
w ? (n(!w.trait.isFinal(), "Cannot redefine a final trait: " + x), n(x.isOverride() || "length" === x.name.getName(), "Overriding a trait that is not marked for override: " + x)) : n(!x.isOverride(), "Trait marked override must override another trait: " + x);
|
|
h[p] = q;
|
|
if (l.isProtected()) {
|
|
for (h = this.parent;h && h.instanceInfo.protectedNs;) {
|
|
q = f.getQualifiedName(new f([h.instanceInfo.protectedNs], l.name.getName())), q = u.getKey(q, l), q in e && (e[q] = d), h = h.parent;
|
|
}
|
|
}
|
|
(l.isSlot() || l.isConst()) && this.assignNextSlot(l);
|
|
if (l.isMethod() || l.isGetter() || l.isSetter()) {
|
|
d.scope = this.scope, d.natives = this.natives;
|
|
}
|
|
}
|
|
l = c.abc.applicationDomain;
|
|
d = c.interfaces;
|
|
for (b = 0;b < d.length;b++) {
|
|
r = l.getProperty(d[b], !0, !0), n(r), a(this.implementedInterfaces, r.interfaceBindings.implementedInterfaces), this.implementedInterfaces[f.getQualifiedName(r.classInfo.instanceInfo.name)] = r;
|
|
}
|
|
for (var g in this.implementedInterfaces) {
|
|
r = this.implementedInterfaces[g];
|
|
h = r.interfaceBindings;
|
|
for (var m in h.map) {
|
|
b = h.map[m], c.isInterface() ? e[m] = b : (d = f.getPublicQualifiedName(b.trait.name.getName()), p = u.getKey(d, b.trait), e[m] = e[p]);
|
|
}
|
|
}
|
|
};
|
|
h.prototype.toString = function() {
|
|
return this.instanceInfo.toString();
|
|
};
|
|
return h;
|
|
}(h);
|
|
g.InstanceBindings = h;
|
|
var G = null;
|
|
})(k.Runtime || (k.Runtime = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Binding = Shumway.AVM2.Runtime.Binding, Bindings = Shumway.AVM2.Runtime.Bindings, ActivationBindings = Shumway.AVM2.Runtime.ActivationBindings, CatchBindings = Shumway.AVM2.Runtime.CatchBindings, ScriptBindings = Shumway.AVM2.Runtime.ScriptBindings, ClassBindings = Shumway.AVM2.Runtime.ClassBindings, InstanceBindings = Shumway.AVM2.Runtime.InstanceBindings;
|
|
(function(b) {
|
|
(function(b) {
|
|
b.XRegExp = function() {
|
|
function b(a, c, h) {
|
|
var e;
|
|
if (h) {
|
|
if (a.__proto__) {
|
|
a.__proto__ = q.prototype;
|
|
} else {
|
|
for (e in q.prototype) {
|
|
a[e] = q.prototype[e];
|
|
}
|
|
}
|
|
}
|
|
a.xregexp = {captureNames:c};
|
|
return a;
|
|
}
|
|
function f(a) {
|
|
return u.replace.call(a, /([\s\S])(?=[\s\S]*\1)/g, "");
|
|
}
|
|
function k(a, c) {
|
|
if (!q.isRegExp(a)) {
|
|
throw new TypeError("Type RegExp expected");
|
|
}
|
|
var h = u.exec.call(/\/([a-z]*)$/i, String(a))[1];
|
|
c = c || {};
|
|
c.add && (h = f(h + c.add));
|
|
c.remove && (h = u.replace.call(h, new RegExp("[" + c.remove + "]+", "g"), ""));
|
|
return a = b(new RegExp(a.source, h), a.xregexp && a.xregexp.captureNames ? a.xregexp.captureNames.slice(0) : null, c.addProto);
|
|
}
|
|
function s(a, b) {
|
|
if (Array.prototype.indexOf) {
|
|
return a.indexOf(b);
|
|
}
|
|
var c = a.length, h;
|
|
for (h = 0;h < c;++h) {
|
|
if (a[h] === b) {
|
|
return h;
|
|
}
|
|
}
|
|
return-1;
|
|
}
|
|
function m(a, b) {
|
|
return O.call(a) === "[object " + b + "]";
|
|
}
|
|
function d(a, b, c) {
|
|
return u.test.call(-1 < c.indexOf("x") ? /^(?:\s+|#.*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/ : /^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/, a.slice(b));
|
|
}
|
|
function a(a, b) {
|
|
var c;
|
|
if (f(b) !== b) {
|
|
throw new SyntaxError("Invalid duplicate regex flag " + b);
|
|
}
|
|
a = u.replace.call(a, /^\(\?([\w$]+)\)/, function(a, c) {
|
|
if (u.test.call(/[gy]/, c)) {
|
|
throw new SyntaxError("Cannot use flag g or y in mode modifier " + a);
|
|
}
|
|
b = f(b + c);
|
|
return "";
|
|
});
|
|
for (c = 0;c < b.length;++c) {
|
|
if (!E[b.charAt(c)]) {
|
|
throw new SyntaxError("Unknown regex flag " + b.charAt(c));
|
|
}
|
|
}
|
|
return{pattern:a, flags:b};
|
|
}
|
|
function c(a) {
|
|
a = a || {};
|
|
m(a, "String") && (a = q.forEach(a, /[^\s,]+/, function(a) {
|
|
this[a] = !0;
|
|
}, {}));
|
|
return a;
|
|
}
|
|
function n(a) {
|
|
if (!/^[\w$]$/.test(a)) {
|
|
throw Error("Flag must be a single character A-Za-z0-9_$");
|
|
}
|
|
E[a] = !0;
|
|
}
|
|
function p(a) {
|
|
RegExp.prototype.exec = (a ? w : u).exec;
|
|
RegExp.prototype.test = (a ? w : u).test;
|
|
String.prototype.match = (a ? w : u).match;
|
|
String.prototype.replace = (a ? w : u).replace;
|
|
String.prototype.split = (a ? w : u).split;
|
|
l.natives = a;
|
|
}
|
|
function e(a) {
|
|
if (null == a) {
|
|
throw new TypeError("Cannot convert null or undefined to object");
|
|
}
|
|
return a;
|
|
}
|
|
var q, l = {astral:!1, natives:!1}, u = {exec:RegExp.prototype.exec, test:RegExp.prototype.test, match:String.prototype.match, replace:String.prototype.replace, split:String.prototype.split}, w = {}, r = {}, h = {}, x = [], y = {"default":/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/, "class":/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|[\s\S]/}, G = /\$(?:{([\w$]+)}|([\d$&`']))/g,
|
|
I = void 0 === u.exec.call(/()??/, "")[1], C = void 0 !== RegExp.prototype.sticky, E = {g:!0, i:!0, m:!0, y:C}, O = {}.toString, K;
|
|
q = function(c, e) {
|
|
var d = {hasNamedCapture:!1, captureNames:[]}, p = "default", l = "", n = 0, r, f;
|
|
if (q.isRegExp(c)) {
|
|
if (void 0 !== e) {
|
|
throw new TypeError("Cannot supply flags when copying a RegExp");
|
|
}
|
|
return k(c, {addProto:!0});
|
|
}
|
|
c = void 0 === c ? "" : String(c);
|
|
e = void 0 === e ? "" : String(e);
|
|
f = c + "***" + e;
|
|
if (!h[f]) {
|
|
r = a(c, e);
|
|
c = r.pattern;
|
|
for (e = r.flags;n < c.length;) {
|
|
do {
|
|
r = c;
|
|
for (var w = e, m = n, s = p, G = d, I = x.length, E = null, C = void 0, O = void 0;I--;) {
|
|
if (O = x[I], (O.scope === s || "all" === O.scope) && (!O.flag || -1 < w.indexOf(O.flag)) && (C = q.exec(r, O.regex, m, "sticky"))) {
|
|
E = {matchLength:C[0].length, output:O.handler.call(G, C, s, w), reparse:O.reparse};
|
|
break;
|
|
}
|
|
}
|
|
(r = E) && r.reparse && (c = c.slice(0, n) + r.output + c.slice(n + r.matchLength));
|
|
} while (r && r.reparse);
|
|
r ? (l += r.output, n += r.matchLength || 1) : (r = q.exec(c, y[p], n, "sticky")[0], l += r, n += r.length, "[" === r && "default" === p ? p = "class" : "]" === r && "class" === p && (p = "default"));
|
|
}
|
|
h[f] = {pattern:u.replace.call(l, /\(\?:\)(?=\(\?:\))|^\(\?:\)|\(\?:\)$/g, ""), flags:u.replace.call(e, /[^gimy]+/g, ""), captures:d.hasNamedCapture ? d.captureNames : null};
|
|
}
|
|
f = h[f];
|
|
return b(new RegExp(f.pattern, f.flags), f.captures, !0);
|
|
};
|
|
q.prototype = RegExp();
|
|
q.version = "3.0.0-pre";
|
|
q.addToken = function(a, b, c) {
|
|
c = c || {};
|
|
var h = c.optionalFlags, e;
|
|
c.flag && n(c.flag);
|
|
if (h) {
|
|
for (h = u.split.call(h, ""), e = 0;e < h.length;++e) {
|
|
n(h[e]);
|
|
}
|
|
}
|
|
x.push({regex:k(a, {add:"g" + (C ? "y" : "")}), handler:b, scope:c.scope || "default", flag:c.flag, reparse:c.reparse});
|
|
q.cache.flush("patterns");
|
|
};
|
|
q.cache = function(a, b) {
|
|
var c = a + "***" + (b || "");
|
|
return r[c] || (r[c] = q(a, b));
|
|
};
|
|
q.cache.flush = function(a) {
|
|
"patterns" === a ? h = {} : r = {};
|
|
};
|
|
q.escape = function(a) {
|
|
return u.replace.call(e(a), /[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
|
|
};
|
|
q.exec = function(a, b, c, h) {
|
|
var e = "g";
|
|
C && (h || b.sticky && !1 !== h) && (e += "y");
|
|
b.xregexp = b.xregexp || {captureNames:null};
|
|
e = b.xregexp[e] || (b.xregexp[e] = k(b, {add:e, remove:!1 === h ? "y" : ""}));
|
|
e.lastIndex = c = c || 0;
|
|
a = w.exec.call(e, a);
|
|
h && a && a.index !== c && (a = null);
|
|
b.global && (b.lastIndex = a ? e.lastIndex : 0);
|
|
return a;
|
|
};
|
|
q.forEach = function(a, b, c, h) {
|
|
for (var e = 0, d = -1;e = q.exec(a, b, e);) {
|
|
c.call(h, e, ++d, a, b), e = e.index + (e[0].length || 1);
|
|
}
|
|
return h;
|
|
};
|
|
q.globalize = function(a) {
|
|
return k(a, {add:"g", addProto:!0});
|
|
};
|
|
q.install = function() {
|
|
var a = {natives:!0}, a = c(a);
|
|
!l.astral && a.astral && (q.cache.flush("patterns"), l.astral = !0);
|
|
!l.natives && a.natives && p(!0);
|
|
};
|
|
q.isInstalled = function(a) {
|
|
return!!l[a];
|
|
};
|
|
q.isRegExp = function(a) {
|
|
return "[object RegExp]" === O.call(a);
|
|
};
|
|
q.match = function(a, b, c) {
|
|
var h = b.global && "one" !== c || "all" === c, d = (h ? "g" : "") + (b.sticky ? "y" : "");
|
|
b.xregexp = b.xregexp || {captureNames:null};
|
|
d = b.xregexp[d || "noGY"] || (b.xregexp[d || "noGY"] = k(b, {add:d, remove:"one" === c ? "g" : ""}));
|
|
a = u.match.call(e(a), d);
|
|
b.global && (b.lastIndex = "one" === c && a ? a.index + a[0].length : 0);
|
|
return h ? a || [] : a && a[0];
|
|
};
|
|
q.matchChain = function(a, b) {
|
|
return function B(a, c) {
|
|
function h(a) {
|
|
if (e.backref) {
|
|
if (!(a.hasOwnProperty(e.backref) || +e.backref < a.length)) {
|
|
throw new ReferenceError("Backreference to undefined group: " + e.backref);
|
|
}
|
|
d.push(a[e.backref] || "");
|
|
} else {
|
|
d.push(a[0]);
|
|
}
|
|
}
|
|
var e = b[c].regex ? b[c] : {regex:b[c]}, d = [], p;
|
|
for (p = 0;p < a.length;++p) {
|
|
q.forEach(a[p], e.regex, h);
|
|
}
|
|
return c !== b.length - 1 && d.length ? B(d, c + 1) : d;
|
|
}([a], 0);
|
|
};
|
|
q.replace = function(a, b, c, h) {
|
|
var d = q.isRegExp(b), p = b.global && "one" !== h || "all" === h, l = (p ? "g" : "") + (b.sticky ? "y" : ""), n = b;
|
|
d ? (b.xregexp = b.xregexp || {captureNames:null}, n = b.xregexp[l || "noGY"] || (b.xregexp[l || "noGY"] = k(b, {add:l, remove:"one" === h ? "g" : ""}))) : p && (n = new RegExp(q.escape(String(b)), "g"));
|
|
a = w.replace.call(e(a), n, c);
|
|
d && b.global && (b.lastIndex = 0);
|
|
return a;
|
|
};
|
|
q.replaceEach = function(a, b) {
|
|
var c, h;
|
|
for (c = 0;c < b.length;++c) {
|
|
h = b[c], a = q.replace(a, h[0], h[1], h[2]);
|
|
}
|
|
return a;
|
|
};
|
|
q.split = function(a, b, c) {
|
|
return w.split.call(e(a), b, c);
|
|
};
|
|
q.test = function(a, b, c, h) {
|
|
return!!q.exec(a, b, c, h);
|
|
};
|
|
q.uninstall = function(a) {
|
|
a = c(a);
|
|
l.astral && a.astral && (q.cache.flush("patterns"), l.astral = !1);
|
|
l.natives && a.natives && p(!1);
|
|
};
|
|
q.union = function(a, b) {
|
|
function c(a, b, h) {
|
|
var e = l[d - p];
|
|
if (b) {
|
|
if (++d, e) {
|
|
return "(?<" + e + ">";
|
|
}
|
|
} else {
|
|
if (h) {
|
|
return "\\" + (+h + p);
|
|
}
|
|
}
|
|
return a;
|
|
}
|
|
var h = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*]/g, e = [], d = 0, p, l, n, r;
|
|
if (!m(a, "Array") || !a.length) {
|
|
throw new TypeError("Must provide a nonempty array of patterns to merge");
|
|
}
|
|
for (r = 0;r < a.length;++r) {
|
|
n = a[r], q.isRegExp(n) ? (p = d, l = n.xregexp && n.xregexp.captureNames || [], e.push(u.replace.call(q(n.source).source, h, c))) : e.push(q.escape(n));
|
|
}
|
|
return q(e.join("|"), b);
|
|
};
|
|
w.exec = function(a) {
|
|
var b = this.lastIndex, c = u.exec.apply(this, arguments), h, e;
|
|
if (c) {
|
|
!I && 1 < c.length && -1 < s(c, "") && (h = k(this, {remove:"g"}), u.replace.call(String(a).slice(c.index), h, function() {
|
|
var a = arguments.length, b;
|
|
for (b = 1;b < a - 2;++b) {
|
|
void 0 === arguments[b] && (c[b] = void 0);
|
|
}
|
|
}));
|
|
if (this.xregexp && this.xregexp.captureNames) {
|
|
for (e = 1;e < c.length;++e) {
|
|
(h = this.xregexp.captureNames[e - 1]) && (c[h] = c[e]);
|
|
}
|
|
}
|
|
this.global && !c[0].length && this.lastIndex > c.index && (this.lastIndex = c.index);
|
|
}
|
|
this.global || (this.lastIndex = b);
|
|
return c;
|
|
};
|
|
w.test = function(a) {
|
|
return!!w.exec.call(this, a);
|
|
};
|
|
w.match = function(a) {
|
|
var b;
|
|
if (!q.isRegExp(a)) {
|
|
a = new RegExp(a);
|
|
} else {
|
|
if (a.global) {
|
|
return b = u.match.apply(this, arguments), a.lastIndex = 0, b;
|
|
}
|
|
}
|
|
return w.exec.call(a, e(this));
|
|
};
|
|
w.replace = function(a, b) {
|
|
var c = q.isRegExp(a), h, e, d;
|
|
c ? (a.xregexp && (e = a.xregexp.captureNames), h = a.lastIndex) : a += "";
|
|
d = m(b, "Function") ? u.replace.call(String(this), a, function() {
|
|
var h = arguments, d;
|
|
if (e) {
|
|
for (h[0] = new String(h[0]), d = 0;d < e.length;++d) {
|
|
e[d] && (h[0][e[d]] = h[d + 1]);
|
|
}
|
|
}
|
|
c && a.global && (a.lastIndex = h[h.length - 2] + h[0].length);
|
|
return b.apply(void 0, h);
|
|
}) : u.replace.call(null == this ? this : String(this), a, function() {
|
|
var a = arguments;
|
|
return u.replace.call(String(b), G, function(b, c, h) {
|
|
if (c) {
|
|
h = +c;
|
|
if (h <= a.length - 3) {
|
|
return a[h] || "";
|
|
}
|
|
h = e ? s(e, c) : -1;
|
|
if (0 > h) {
|
|
throw new SyntaxError("Backreference to undefined group " + b);
|
|
}
|
|
return a[h + 1] || "";
|
|
}
|
|
if ("$" === h) {
|
|
return "$";
|
|
}
|
|
if ("&" === h || 0 === +h) {
|
|
return a[0];
|
|
}
|
|
if ("`" === h) {
|
|
return a[a.length - 1].slice(0, a[a.length - 2]);
|
|
}
|
|
if ("'" === h) {
|
|
return a[a.length - 1].slice(a[a.length - 2] + a[0].length);
|
|
}
|
|
h = +h;
|
|
if (!isNaN(h)) {
|
|
if (h > a.length - 3) {
|
|
throw new SyntaxError("Backreference to undefined group " + b);
|
|
}
|
|
return a[h] || "";
|
|
}
|
|
throw new SyntaxError("Invalid token " + b);
|
|
});
|
|
});
|
|
c && (a.lastIndex = a.global ? 0 : h);
|
|
return d;
|
|
};
|
|
w.split = function(a, b) {
|
|
if (!q.isRegExp(a)) {
|
|
return u.split.apply(this, arguments);
|
|
}
|
|
var c = String(this), h = [], e = a.lastIndex, d = 0, p;
|
|
b = (void 0 === b ? -1 : b) >>> 0;
|
|
q.forEach(c, a, function(a) {
|
|
a.index + a[0].length > d && (h.push(c.slice(d, a.index)), 1 < a.length && a.index < c.length && Array.prototype.push.apply(h, a.slice(1)), p = a[0].length, d = a.index + p);
|
|
});
|
|
d === c.length ? u.test.call(a, "") && !p || h.push("") : h.push(c.slice(d));
|
|
a.lastIndex = e;
|
|
return h.length > b ? h.slice(0, b) : h;
|
|
};
|
|
K = q.addToken;
|
|
K(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4})|x(?![\dA-Fa-f]{2}))/, function(a, b) {
|
|
if ("B" === a[1] && "default" === b) {
|
|
return a[0];
|
|
}
|
|
throw new SyntaxError("Invalid escape " + a[0]);
|
|
}, {scope:"all"});
|
|
K(/\[(\^?)]/, function(a) {
|
|
return a[1] ? "[\\s\\S]" : "\\b\\B";
|
|
});
|
|
K(/\(\?#[^)]*\)/, function(a, b, c) {
|
|
return d(a.input, a.index + a[0].length, c) ? "" : "(?:)";
|
|
});
|
|
K(/\s+|#.*/, function(a, b, c) {
|
|
return d(a.input, a.index + a[0].length, c) ? "" : "(?:)";
|
|
}, {flag:"x"});
|
|
K(/\./, function() {
|
|
return "[\\s\\S]";
|
|
}, {flag:"s"});
|
|
K(/\\k<([\w$]+)>/, function(a) {
|
|
var b = isNaN(a[1]) ? s(this.captureNames, a[1]) + 1 : +a[1], c = a.index + a[0].length;
|
|
if (!b || b > this.captureNames.length) {
|
|
throw new SyntaxError("Backreference to undefined group " + a[0]);
|
|
}
|
|
return "\\" + b + (c === a.input.length || isNaN(a.input.charAt(c)) ? "" : "(?:)");
|
|
});
|
|
K(/\\(\d+)/, function(a, b) {
|
|
if (!("default" === b && /^[1-9]/.test(a[1]) && +a[1] <= this.captureNames.length) && "0" !== a[1]) {
|
|
throw new SyntaxError("Cannot use octal escape or backreference to undefined group " + a[0]);
|
|
}
|
|
return a[0];
|
|
}, {scope:"all"});
|
|
K(/\(\?P?<([\w$]+)>/, function(a) {
|
|
if (!isNaN(a[1])) {
|
|
throw new SyntaxError("Cannot use integer as capture name " + a[0]);
|
|
}
|
|
if ("length" === a[1] || "__proto__" === a[1]) {
|
|
throw new SyntaxError("Cannot use reserved word as capture name " + a[0]);
|
|
}
|
|
if (-1 < s(this.captureNames, a[1])) {
|
|
throw new SyntaxError("Cannot use same name for multiple groups " + a[0]);
|
|
}
|
|
this.captureNames.push(a[1]);
|
|
this.hasNamedCapture = !0;
|
|
return "(";
|
|
});
|
|
K(/\((?!\?)/, function(a, b, c) {
|
|
if (-1 < c.indexOf("n")) {
|
|
return "(?:";
|
|
}
|
|
this.captureNames.push(null);
|
|
return "(";
|
|
}, {optionalFlags:"n"});
|
|
return q;
|
|
}();
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
Shumway.AVM2.XRegExp.install();
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.Debug.assertNotImplemented, t = b.Debug.notImplemented, s = b.AVM2.Runtime.throwError, m = b.NumberUtilities.clamp, d = b.AVM2.Runtime.asCheckVectorGetNumericProperty, a = b.AVM2.Runtime.asCheckVectorSetNumericProperty, c = function() {
|
|
function c(a, b) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = !1);
|
|
a >>>= 0;
|
|
this._fixed = !!b;
|
|
this._buffer = new Int32Array(Math.max(c.INITIAL_CAPACITY, a + c.EXTRA_CAPACITY));
|
|
this._offset = 0;
|
|
this._length = a;
|
|
}
|
|
c.defaultCompareFunction = function(a, b) {
|
|
return String(a).localeCompare(String(b));
|
|
};
|
|
c.compare = function(a, e, d, l) {
|
|
f(!(d & c.CASEINSENSITIVE), "CASEINSENSITIVE");
|
|
f(!(d & c.UNIQUESORT), "UNIQUESORT");
|
|
f(!(d & c.RETURNINDEXEDARRAY), "RETURNINDEXEDARRAY");
|
|
var g = 0;
|
|
l || (l = c.defaultCompareFunction);
|
|
d & c.NUMERIC ? (a = b.toNumber(a), e = b.toNumber(e), g = a < e ? -1 : a > e ? 1 : 0) : g = l(a, e);
|
|
d & c.DESCENDING && (g *= -1);
|
|
return g;
|
|
};
|
|
c.callable = function(a) {
|
|
if (a instanceof c) {
|
|
return a;
|
|
}
|
|
var e = a.asGetProperty(void 0, "length");
|
|
if (void 0 !== e) {
|
|
for (var d = new c(e, !1), l = 0;l < e;l++) {
|
|
d.asSetNumericProperty(l, a.asGetPublicProperty(l));
|
|
}
|
|
return d;
|
|
}
|
|
b.Debug.unexpected();
|
|
};
|
|
c.prototype.internalToString = function() {
|
|
for (var a = "", b = this._offset, c = b + this._length, d = 0;d < this._buffer.length;d++) {
|
|
d === b && (a += "["), d === c && (a += "]"), a += this._buffer[d], d < this._buffer.length - 1 && (a += ",");
|
|
}
|
|
this._offset + this._length === this._buffer.length && (a += "]");
|
|
return a + ": offset: " + this._offset + ", length: " + this._length + ", capacity: " + this._buffer.length;
|
|
};
|
|
c.prototype.toString = function() {
|
|
for (var a = "", b = 0;b < this._length;b++) {
|
|
a += this._buffer[this._offset + b], b < this._length - 1 && (a += ",");
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype._view = function() {
|
|
return this._buffer.subarray(this._offset, this._offset + this._length);
|
|
};
|
|
c.prototype._ensureCapacity = function(a) {
|
|
var b = this._offset + a;
|
|
b < this._buffer.length || (a <= this._buffer.length ? (b = this._buffer.length - a >> 2, this._buffer.set(this._view(), b), this._offset = b) : (a = (3 * this._buffer.length >> 1) + 1, a < b && (a = b), b = new Int32Array(a), b.set(this._buffer, 0), this._buffer = b));
|
|
};
|
|
c.prototype.concat = function() {
|
|
t("Int32Vector.concat");
|
|
};
|
|
c.prototype.every = function(a, b) {
|
|
for (var c = 0;c < this._length;c++) {
|
|
if (!a.call(b, this._buffer[this._offset + c], c, this)) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
c.prototype.filter = function(a, b) {
|
|
for (var d = new c, l = 0;l < this._length;l++) {
|
|
a.call(b, this._buffer[this._offset + l], l, this) && d.push(this._buffer[this._offset + l]);
|
|
}
|
|
return d;
|
|
};
|
|
c.prototype.some = function(a, c) {
|
|
2 !== arguments.length ? s("ArgumentError", k.Errors.WrongArgumentCountError) : b.isFunction(a) || s("ArgumentError", k.Errors.CheckTypeFailedError);
|
|
for (var d = 0;d < this._length;d++) {
|
|
if (a.call(c, this._buffer[this._offset + d], d, this)) {
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
};
|
|
c.prototype.forEach = function(a, b) {
|
|
for (var c = 0;c < this._length;c++) {
|
|
a.call(b, this._buffer[this._offset + c], c, this);
|
|
}
|
|
};
|
|
c.prototype.join = function(a) {
|
|
t("Int32Vector.join");
|
|
};
|
|
c.prototype.indexOf = function(a, b) {
|
|
t("Int32Vector.indexOf");
|
|
};
|
|
c.prototype.lastIndexOf = function(a, b) {
|
|
t("Int32Vector.lastIndexOf");
|
|
};
|
|
c.prototype.map = function(a, e) {
|
|
b.isFunction(a) || s("ArgumentError", k.Errors.CheckTypeFailedError);
|
|
for (var d = new c, l = 0;l < this._length;l++) {
|
|
d.push(a.call(e, this._buffer[this._offset + l], l, this));
|
|
}
|
|
return d;
|
|
};
|
|
c.prototype.push = function() {
|
|
for (var a = 0;a < arguments.length - 0;a++) {
|
|
}
|
|
this._checkFixed();
|
|
this._ensureCapacity(this._length + arguments.length);
|
|
for (a = 0;a < arguments.length;a++) {
|
|
this._buffer[this._offset + this._length++] = arguments[a];
|
|
}
|
|
};
|
|
c.prototype.pop = function() {
|
|
this._checkFixed();
|
|
if (0 === this._length) {
|
|
return c.DEFAULT_VALUE;
|
|
}
|
|
this._length--;
|
|
return this._buffer[this._offset + this._length];
|
|
};
|
|
c.prototype.reverse = function() {
|
|
for (var a = this._offset, b = this._offset + this._length - 1, c = this._buffer;a < b;) {
|
|
var d = c[a];
|
|
c[a] = c[b];
|
|
c[b] = d;
|
|
a++;
|
|
b--;
|
|
}
|
|
};
|
|
c._sort = function(a) {
|
|
for (var b = [], c = -1, d = 0, n = a.length - 1, f, r, h, x;;) {
|
|
if (100 >= n - d) {
|
|
for (r = d + 1;r <= n;r++) {
|
|
h = a[r];
|
|
for (f = r - 1;f >= d && a[f] > h;) {
|
|
a[f + 1] = a[f--];
|
|
}
|
|
a[f + 1] = h;
|
|
}
|
|
if (-1 == c) {
|
|
break;
|
|
}
|
|
n = b[c--];
|
|
d = b[c--];
|
|
} else {
|
|
x = d + n >> 1;
|
|
f = d + 1;
|
|
r = n;
|
|
h = a[x];
|
|
a[x] = a[f];
|
|
a[f] = h;
|
|
a[d] > a[n] && (h = a[d], a[d] = a[n], a[n] = h);
|
|
a[f] > a[n] && (h = a[f], a[f] = a[n], a[n] = h);
|
|
a[d] > a[f] && (h = a[d], a[d] = a[f], a[f] = h);
|
|
for (x = a[f];;) {
|
|
do {
|
|
f++;
|
|
} while (a[f] < x);
|
|
do {
|
|
r--;
|
|
} while (a[r] > x);
|
|
if (r < f) {
|
|
break;
|
|
}
|
|
h = a[f];
|
|
a[f] = a[r];
|
|
a[r] = h;
|
|
}
|
|
a[d + 1] = a[r];
|
|
a[r] = x;
|
|
n - f + 1 >= r - d ? (b[++c] = f, b[++c] = n, n = r - 1) : (b[++c] = d, b[++c] = r - 1, d = f);
|
|
}
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype._sortNumeric = function(a) {
|
|
c._sort(this._view());
|
|
a && this.reverse();
|
|
};
|
|
c.prototype.sort = function() {
|
|
if (0 === arguments.length) {
|
|
return Array.prototype.sort.call(this._view());
|
|
}
|
|
var a, e = 0;
|
|
arguments[0] instanceof Function ? a = arguments[0] : b.isNumber(arguments[0]) && (e = arguments[0]);
|
|
b.isNumber(arguments[1]) && (e = arguments[1]);
|
|
if (e & c.NUMERIC) {
|
|
return this._sortNumeric(e & c.DESCENDING);
|
|
}
|
|
Array.prototype.sort.call(this._view(), function(b, d) {
|
|
return c.compare(b, d, e, a);
|
|
});
|
|
};
|
|
c.prototype.asGetNumericProperty = function(a) {
|
|
d(a, this._length);
|
|
return this._buffer[this._offset + a];
|
|
};
|
|
c.prototype.asSetNumericProperty = function(b, c) {
|
|
a(b, this._length, this._fixed);
|
|
b === this._length && (this._ensureCapacity(this._length + 1), this._length++);
|
|
this._buffer[this._offset + b] = c;
|
|
};
|
|
c.prototype.shift = function() {
|
|
this._checkFixed();
|
|
if (0 === this._length) {
|
|
return 0;
|
|
}
|
|
this._length--;
|
|
return this._buffer[this._offset++];
|
|
};
|
|
c.prototype._checkFixed = function() {
|
|
this._fixed && s("RangeError", k.Errors.VectorFixedError);
|
|
};
|
|
c.prototype._slide = function(a) {
|
|
this._buffer.set(this._view(), this._offset + a);
|
|
this._offset += a;
|
|
};
|
|
c.prototype.unshift = function() {
|
|
this._checkFixed();
|
|
if (arguments.length) {
|
|
this._ensureCapacity(this._length + arguments.length);
|
|
this._slide(arguments.length);
|
|
this._offset -= arguments.length;
|
|
this._length += arguments.length;
|
|
for (var a = 0;a < arguments.length;a++) {
|
|
this._buffer[this._offset + a] = arguments[a];
|
|
}
|
|
}
|
|
};
|
|
c.prototype.asHasProperty = function(a, e, d) {
|
|
if (c.prototype === this || !b.isNumeric(e)) {
|
|
return Object.prototype.asHasProperty.call(this, a, e, d);
|
|
}
|
|
a = b.toNumber(e);
|
|
return 0 <= a && a < this._length;
|
|
};
|
|
Object.defineProperty(c.prototype, "length", {get:function() {
|
|
return this._length;
|
|
}, set:function(a) {
|
|
a >>>= 0;
|
|
if (a > this._length) {
|
|
this._ensureCapacity(a);
|
|
for (var b = this._offset + this._length, d = this._offset + a;b < d;b++) {
|
|
this._buffer[b] = c.DEFAULT_VALUE;
|
|
}
|
|
}
|
|
this._length = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "fixed", {get:function() {
|
|
return this._fixed;
|
|
}, set:function(a) {
|
|
this._fixed = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype._spliceHelper = function(a, b, c, d, n) {
|
|
b = m(b, 0, d.length - n);
|
|
c = m(c, 0, this._length - a);
|
|
this._ensureCapacity(this._length - c + b);
|
|
var f = this._offset + a + c;
|
|
this._buffer.set(this._buffer.subarray(f, f + this._length - a - c), this._offset + a + b);
|
|
this._length += b - c;
|
|
for (c = 0;c < b;c++) {
|
|
this._buffer[this._offset + a + c] = d.asGetNumericProperty(n + c);
|
|
}
|
|
};
|
|
c.prototype.asNextName = function(a) {
|
|
return a - 1;
|
|
};
|
|
c.prototype.asNextValue = function(a) {
|
|
return this._buffer[this._offset + a - 1];
|
|
};
|
|
c.prototype.asNextNameIndex = function(a) {
|
|
a += 1;
|
|
return a <= this._length ? a : 0;
|
|
};
|
|
c.prototype.asHasNext2 = function(a) {
|
|
a.index = this.asNextNameIndex(a.index);
|
|
};
|
|
c.EXTRA_CAPACITY = 4;
|
|
c.INITIAL_CAPACITY = 10;
|
|
c.DEFAULT_VALUE = 0;
|
|
c.CASEINSENSITIVE = 1;
|
|
c.DESCENDING = 2;
|
|
c.UNIQUESORT = 4;
|
|
c.RETURNINDEXEDARRAY = 8;
|
|
c.NUMERIC = 16;
|
|
return c;
|
|
}();
|
|
g.Int32Vector = c;
|
|
c.prototype._reverse = c.prototype.reverse;
|
|
c.prototype._filter = c.prototype.filter;
|
|
c.prototype._map = c.prototype.map;
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.Debug.assertNotImplemented, t = b.Debug.notImplemented, s = b.AVM2.Runtime.throwError, m = b.NumberUtilities.clamp, d = b.AVM2.Runtime.asCheckVectorGetNumericProperty, a = b.AVM2.Runtime.asCheckVectorSetNumericProperty, c = function() {
|
|
function c(a, b) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = !1);
|
|
a >>>= 0;
|
|
this._fixed = !!b;
|
|
this._buffer = new Uint32Array(Math.max(c.INITIAL_CAPACITY, a + c.EXTRA_CAPACITY));
|
|
this._offset = 0;
|
|
this._length = a;
|
|
}
|
|
c.defaultCompareFunction = function(a, b) {
|
|
return String(a).localeCompare(String(b));
|
|
};
|
|
c.compare = function(a, e, d, l) {
|
|
f(!(d & c.CASEINSENSITIVE), "CASEINSENSITIVE");
|
|
f(!(d & c.UNIQUESORT), "UNIQUESORT");
|
|
f(!(d & c.RETURNINDEXEDARRAY), "RETURNINDEXEDARRAY");
|
|
var g = 0;
|
|
l || (l = c.defaultCompareFunction);
|
|
d & c.NUMERIC ? (a = b.toNumber(a), e = b.toNumber(e), g = a < e ? -1 : a > e ? 1 : 0) : g = l(a, e);
|
|
d & c.DESCENDING && (g *= -1);
|
|
return g;
|
|
};
|
|
c.callable = function(a) {
|
|
if (a instanceof c) {
|
|
return a;
|
|
}
|
|
var e = a.asGetProperty(void 0, "length");
|
|
if (void 0 !== e) {
|
|
for (var d = new c(e, !1), l = 0;l < e;l++) {
|
|
d.asSetNumericProperty(l, a.asGetPublicProperty(l));
|
|
}
|
|
return d;
|
|
}
|
|
b.Debug.unexpected();
|
|
};
|
|
c.prototype.internalToString = function() {
|
|
for (var a = "", b = this._offset, c = b + this._length, d = 0;d < this._buffer.length;d++) {
|
|
d === b && (a += "["), d === c && (a += "]"), a += this._buffer[d], d < this._buffer.length - 1 && (a += ",");
|
|
}
|
|
this._offset + this._length === this._buffer.length && (a += "]");
|
|
return a + ": offset: " + this._offset + ", length: " + this._length + ", capacity: " + this._buffer.length;
|
|
};
|
|
c.prototype.toString = function() {
|
|
for (var a = "", b = 0;b < this._length;b++) {
|
|
a += this._buffer[this._offset + b], b < this._length - 1 && (a += ",");
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype._view = function() {
|
|
return this._buffer.subarray(this._offset, this._offset + this._length);
|
|
};
|
|
c.prototype._ensureCapacity = function(a) {
|
|
var b = this._offset + a;
|
|
b < this._buffer.length || (a <= this._buffer.length ? (b = this._buffer.length - a >> 2, this._buffer.set(this._view(), b), this._offset = b) : (a = (3 * this._buffer.length >> 1) + 1, a < b && (a = b), b = new Uint32Array(a), b.set(this._buffer, 0), this._buffer = b));
|
|
};
|
|
c.prototype.concat = function() {
|
|
t("Uint32Vector.concat");
|
|
};
|
|
c.prototype.every = function(a, b) {
|
|
for (var c = 0;c < this._length;c++) {
|
|
if (!a.call(b, this._buffer[this._offset + c], c, this)) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
c.prototype.filter = function(a, b) {
|
|
for (var d = new c, l = 0;l < this._length;l++) {
|
|
a.call(b, this._buffer[this._offset + l], l, this) && d.push(this._buffer[this._offset + l]);
|
|
}
|
|
return d;
|
|
};
|
|
c.prototype.some = function(a, c) {
|
|
2 !== arguments.length ? s("ArgumentError", k.Errors.WrongArgumentCountError) : b.isFunction(a) || s("ArgumentError", k.Errors.CheckTypeFailedError);
|
|
for (var d = 0;d < this._length;d++) {
|
|
if (a.call(c, this._buffer[this._offset + d], d, this)) {
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
};
|
|
c.prototype.forEach = function(a, b) {
|
|
for (var c = 0;c < this._length;c++) {
|
|
a.call(b, this._buffer[this._offset + c], c, this);
|
|
}
|
|
};
|
|
c.prototype.join = function(a) {
|
|
t("Uint32Vector.join");
|
|
};
|
|
c.prototype.indexOf = function(a, b) {
|
|
t("Uint32Vector.indexOf");
|
|
};
|
|
c.prototype.lastIndexOf = function(a, b) {
|
|
t("Uint32Vector.lastIndexOf");
|
|
};
|
|
c.prototype.map = function(a, e) {
|
|
b.isFunction(a) || s("ArgumentError", k.Errors.CheckTypeFailedError);
|
|
for (var d = new c, l = 0;l < this._length;l++) {
|
|
d.push(a.call(e, this._buffer[this._offset + l], l, this));
|
|
}
|
|
return d;
|
|
};
|
|
c.prototype.push = function() {
|
|
for (var a = 0;a < arguments.length - 0;a++) {
|
|
}
|
|
this._checkFixed();
|
|
this._ensureCapacity(this._length + arguments.length);
|
|
for (a = 0;a < arguments.length;a++) {
|
|
this._buffer[this._offset + this._length++] = arguments[a];
|
|
}
|
|
};
|
|
c.prototype.pop = function() {
|
|
this._checkFixed();
|
|
if (0 === this._length) {
|
|
return c.DEFAULT_VALUE;
|
|
}
|
|
this._length--;
|
|
return this._buffer[this._offset + this._length];
|
|
};
|
|
c.prototype.reverse = function() {
|
|
for (var a = this._offset, b = this._offset + this._length - 1, c = this._buffer;a < b;) {
|
|
var d = c[a];
|
|
c[a] = c[b];
|
|
c[b] = d;
|
|
a++;
|
|
b--;
|
|
}
|
|
};
|
|
c._sort = function(a) {
|
|
for (var b = [], c = -1, d = 0, n = a.length - 1, f, r, h, x;;) {
|
|
if (100 >= n - d) {
|
|
for (r = d + 1;r <= n;r++) {
|
|
h = a[r];
|
|
for (f = r - 1;f >= d && a[f] > h;) {
|
|
a[f + 1] = a[f--];
|
|
}
|
|
a[f + 1] = h;
|
|
}
|
|
if (-1 == c) {
|
|
break;
|
|
}
|
|
n = b[c--];
|
|
d = b[c--];
|
|
} else {
|
|
x = d + n >> 1;
|
|
f = d + 1;
|
|
r = n;
|
|
h = a[x];
|
|
a[x] = a[f];
|
|
a[f] = h;
|
|
a[d] > a[n] && (h = a[d], a[d] = a[n], a[n] = h);
|
|
a[f] > a[n] && (h = a[f], a[f] = a[n], a[n] = h);
|
|
a[d] > a[f] && (h = a[d], a[d] = a[f], a[f] = h);
|
|
for (x = a[f];;) {
|
|
do {
|
|
f++;
|
|
} while (a[f] < x);
|
|
do {
|
|
r--;
|
|
} while (a[r] > x);
|
|
if (r < f) {
|
|
break;
|
|
}
|
|
h = a[f];
|
|
a[f] = a[r];
|
|
a[r] = h;
|
|
}
|
|
a[d + 1] = a[r];
|
|
a[r] = x;
|
|
n - f + 1 >= r - d ? (b[++c] = f, b[++c] = n, n = r - 1) : (b[++c] = d, b[++c] = r - 1, d = f);
|
|
}
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype._sortNumeric = function(a) {
|
|
c._sort(this._view());
|
|
a && this.reverse();
|
|
};
|
|
c.prototype.sort = function() {
|
|
if (0 === arguments.length) {
|
|
return Array.prototype.sort.call(this._view());
|
|
}
|
|
var a, e = 0;
|
|
arguments[0] instanceof Function ? a = arguments[0] : b.isNumber(arguments[0]) && (e = arguments[0]);
|
|
b.isNumber(arguments[1]) && (e = arguments[1]);
|
|
if (e & c.NUMERIC) {
|
|
return this._sortNumeric(e & c.DESCENDING);
|
|
}
|
|
Array.prototype.sort.call(this._view(), function(b, d) {
|
|
return c.compare(b, d, e, a);
|
|
});
|
|
};
|
|
c.prototype.asGetNumericProperty = function(a) {
|
|
d(a, this._length);
|
|
return this._buffer[this._offset + a];
|
|
};
|
|
c.prototype.asSetNumericProperty = function(b, c) {
|
|
a(b, this._length, this._fixed);
|
|
b === this._length && (this._ensureCapacity(this._length + 1), this._length++);
|
|
this._buffer[this._offset + b] = c;
|
|
};
|
|
c.prototype.shift = function() {
|
|
this._checkFixed();
|
|
if (0 === this._length) {
|
|
return 0;
|
|
}
|
|
this._length--;
|
|
return this._buffer[this._offset++];
|
|
};
|
|
c.prototype._checkFixed = function() {
|
|
this._fixed && s("RangeError", k.Errors.VectorFixedError);
|
|
};
|
|
c.prototype._slide = function(a) {
|
|
this._buffer.set(this._view(), this._offset + a);
|
|
this._offset += a;
|
|
};
|
|
c.prototype.unshift = function() {
|
|
this._checkFixed();
|
|
if (arguments.length) {
|
|
this._ensureCapacity(this._length + arguments.length);
|
|
this._slide(arguments.length);
|
|
this._offset -= arguments.length;
|
|
this._length += arguments.length;
|
|
for (var a = 0;a < arguments.length;a++) {
|
|
this._buffer[this._offset + a] = arguments[a];
|
|
}
|
|
}
|
|
};
|
|
c.prototype.asHasProperty = function(a, e, d) {
|
|
if (c.prototype === this || !b.isNumeric(e)) {
|
|
return Object.prototype.asHasProperty.call(this, a, e, d);
|
|
}
|
|
a = b.toNumber(e);
|
|
return 0 <= a && a < this._length;
|
|
};
|
|
Object.defineProperty(c.prototype, "length", {get:function() {
|
|
return this._length;
|
|
}, set:function(a) {
|
|
a >>>= 0;
|
|
if (a > this._length) {
|
|
this._ensureCapacity(a);
|
|
for (var b = this._offset + this._length, d = this._offset + a;b < d;b++) {
|
|
this._buffer[b] = c.DEFAULT_VALUE;
|
|
}
|
|
}
|
|
this._length = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "fixed", {get:function() {
|
|
return this._fixed;
|
|
}, set:function(a) {
|
|
this._fixed = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype._spliceHelper = function(a, b, c, d, n) {
|
|
b = m(b, 0, d.length - n);
|
|
c = m(c, 0, this._length - a);
|
|
this._ensureCapacity(this._length - c + b);
|
|
var f = this._offset + a + c;
|
|
this._buffer.set(this._buffer.subarray(f, f + this._length - a - c), this._offset + a + b);
|
|
this._length += b - c;
|
|
for (c = 0;c < b;c++) {
|
|
this._buffer[this._offset + a + c] = d.asGetNumericProperty(n + c);
|
|
}
|
|
};
|
|
c.prototype.asNextName = function(a) {
|
|
return a - 1;
|
|
};
|
|
c.prototype.asNextValue = function(a) {
|
|
return this._buffer[this._offset + a - 1];
|
|
};
|
|
c.prototype.asNextNameIndex = function(a) {
|
|
a += 1;
|
|
return a <= this._length ? a : 0;
|
|
};
|
|
c.prototype.asHasNext2 = function(a) {
|
|
a.index = this.asNextNameIndex(a.index);
|
|
};
|
|
c.EXTRA_CAPACITY = 4;
|
|
c.INITIAL_CAPACITY = 10;
|
|
c.DEFAULT_VALUE = 0;
|
|
c.CASEINSENSITIVE = 1;
|
|
c.DESCENDING = 2;
|
|
c.UNIQUESORT = 4;
|
|
c.RETURNINDEXEDARRAY = 8;
|
|
c.NUMERIC = 16;
|
|
return c;
|
|
}();
|
|
g.Uint32Vector = c;
|
|
c.prototype._reverse = c.prototype.reverse;
|
|
c.prototype._filter = c.prototype.filter;
|
|
c.prototype._map = c.prototype.map;
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.Debug.assertNotImplemented, t = b.Debug.notImplemented, s = b.AVM2.Runtime.throwError, m = b.NumberUtilities.clamp, d = b.AVM2.Runtime.asCheckVectorGetNumericProperty, a = b.AVM2.Runtime.asCheckVectorSetNumericProperty, c = function() {
|
|
function c(a, b) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = !1);
|
|
a >>>= 0;
|
|
this._fixed = !!b;
|
|
this._buffer = new Float64Array(Math.max(c.INITIAL_CAPACITY, a + c.EXTRA_CAPACITY));
|
|
this._offset = 0;
|
|
this._length = a;
|
|
}
|
|
c.defaultCompareFunction = function(a, b) {
|
|
return String(a).localeCompare(String(b));
|
|
};
|
|
c.compare = function(a, e, d, l) {
|
|
f(!(d & c.CASEINSENSITIVE), "CASEINSENSITIVE");
|
|
f(!(d & c.UNIQUESORT), "UNIQUESORT");
|
|
f(!(d & c.RETURNINDEXEDARRAY), "RETURNINDEXEDARRAY");
|
|
var g = 0;
|
|
l || (l = c.defaultCompareFunction);
|
|
d & c.NUMERIC ? (a = b.toNumber(a), e = b.toNumber(e), g = a < e ? -1 : a > e ? 1 : 0) : g = l(a, e);
|
|
d & c.DESCENDING && (g *= -1);
|
|
return g;
|
|
};
|
|
c.callable = function(a) {
|
|
if (a instanceof c) {
|
|
return a;
|
|
}
|
|
var e = a.asGetProperty(void 0, "length");
|
|
if (void 0 !== e) {
|
|
for (var d = new c(e, !1), l = 0;l < e;l++) {
|
|
d.asSetNumericProperty(l, a.asGetPublicProperty(l));
|
|
}
|
|
return d;
|
|
}
|
|
b.Debug.unexpected();
|
|
};
|
|
c.prototype.internalToString = function() {
|
|
for (var a = "", b = this._offset, c = b + this._length, d = 0;d < this._buffer.length;d++) {
|
|
d === b && (a += "["), d === c && (a += "]"), a += this._buffer[d], d < this._buffer.length - 1 && (a += ",");
|
|
}
|
|
this._offset + this._length === this._buffer.length && (a += "]");
|
|
return a + ": offset: " + this._offset + ", length: " + this._length + ", capacity: " + this._buffer.length;
|
|
};
|
|
c.prototype.toString = function() {
|
|
for (var a = "", b = 0;b < this._length;b++) {
|
|
a += this._buffer[this._offset + b], b < this._length - 1 && (a += ",");
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype._view = function() {
|
|
return this._buffer.subarray(this._offset, this._offset + this._length);
|
|
};
|
|
c.prototype._ensureCapacity = function(a) {
|
|
var b = this._offset + a;
|
|
b < this._buffer.length || (a <= this._buffer.length ? (b = this._buffer.length - a >> 2, this._buffer.set(this._view(), b), this._offset = b) : (a = (3 * this._buffer.length >> 1) + 1, a < b && (a = b), b = new Float64Array(a), b.set(this._buffer, 0), this._buffer = b));
|
|
};
|
|
c.prototype.concat = function() {
|
|
t("Float64Vector.concat");
|
|
};
|
|
c.prototype.every = function(a, b) {
|
|
for (var c = 0;c < this._length;c++) {
|
|
if (!a.call(b, this._buffer[this._offset + c], c, this)) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
c.prototype.filter = function(a, b) {
|
|
for (var d = new c, l = 0;l < this._length;l++) {
|
|
a.call(b, this._buffer[this._offset + l], l, this) && d.push(this._buffer[this._offset + l]);
|
|
}
|
|
return d;
|
|
};
|
|
c.prototype.some = function(a, c) {
|
|
2 !== arguments.length ? s("ArgumentError", k.Errors.WrongArgumentCountError) : b.isFunction(a) || s("ArgumentError", k.Errors.CheckTypeFailedError);
|
|
for (var d = 0;d < this._length;d++) {
|
|
if (a.call(c, this._buffer[this._offset + d], d, this)) {
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
};
|
|
c.prototype.forEach = function(a, b) {
|
|
for (var c = 0;c < this._length;c++) {
|
|
a.call(b, this._buffer[this._offset + c], c, this);
|
|
}
|
|
};
|
|
c.prototype.join = function(a) {
|
|
t("Float64Vector.join");
|
|
};
|
|
c.prototype.indexOf = function(a, b) {
|
|
t("Float64Vector.indexOf");
|
|
};
|
|
c.prototype.lastIndexOf = function(a, b) {
|
|
t("Float64Vector.lastIndexOf");
|
|
};
|
|
c.prototype.map = function(a, e) {
|
|
b.isFunction(a) || s("ArgumentError", k.Errors.CheckTypeFailedError);
|
|
for (var d = new c, l = 0;l < this._length;l++) {
|
|
d.push(a.call(e, this._buffer[this._offset + l], l, this));
|
|
}
|
|
return d;
|
|
};
|
|
c.prototype.push = function() {
|
|
for (var a = 0;a < arguments.length - 0;a++) {
|
|
}
|
|
this._checkFixed();
|
|
this._ensureCapacity(this._length + arguments.length);
|
|
for (a = 0;a < arguments.length;a++) {
|
|
this._buffer[this._offset + this._length++] = arguments[a];
|
|
}
|
|
};
|
|
c.prototype.pop = function() {
|
|
this._checkFixed();
|
|
if (0 === this._length) {
|
|
return c.DEFAULT_VALUE;
|
|
}
|
|
this._length--;
|
|
return this._buffer[this._offset + this._length];
|
|
};
|
|
c.prototype.reverse = function() {
|
|
for (var a = this._offset, b = this._offset + this._length - 1, c = this._buffer;a < b;) {
|
|
var d = c[a];
|
|
c[a] = c[b];
|
|
c[b] = d;
|
|
a++;
|
|
b--;
|
|
}
|
|
};
|
|
c._sort = function(a) {
|
|
for (var b = [], c = -1, d = 0, n = a.length - 1, f, r, h, x;;) {
|
|
if (100 >= n - d) {
|
|
for (r = d + 1;r <= n;r++) {
|
|
h = a[r];
|
|
for (f = r - 1;f >= d && a[f] > h;) {
|
|
a[f + 1] = a[f--];
|
|
}
|
|
a[f + 1] = h;
|
|
}
|
|
if (-1 == c) {
|
|
break;
|
|
}
|
|
n = b[c--];
|
|
d = b[c--];
|
|
} else {
|
|
x = d + n >> 1;
|
|
f = d + 1;
|
|
r = n;
|
|
h = a[x];
|
|
a[x] = a[f];
|
|
a[f] = h;
|
|
a[d] > a[n] && (h = a[d], a[d] = a[n], a[n] = h);
|
|
a[f] > a[n] && (h = a[f], a[f] = a[n], a[n] = h);
|
|
a[d] > a[f] && (h = a[d], a[d] = a[f], a[f] = h);
|
|
for (x = a[f];;) {
|
|
do {
|
|
f++;
|
|
} while (a[f] < x);
|
|
do {
|
|
r--;
|
|
} while (a[r] > x);
|
|
if (r < f) {
|
|
break;
|
|
}
|
|
h = a[f];
|
|
a[f] = a[r];
|
|
a[r] = h;
|
|
}
|
|
a[d + 1] = a[r];
|
|
a[r] = x;
|
|
n - f + 1 >= r - d ? (b[++c] = f, b[++c] = n, n = r - 1) : (b[++c] = d, b[++c] = r - 1, d = f);
|
|
}
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype._sortNumeric = function(a) {
|
|
c._sort(this._view());
|
|
a && this.reverse();
|
|
};
|
|
c.prototype.sort = function() {
|
|
if (0 === arguments.length) {
|
|
return Array.prototype.sort.call(this._view());
|
|
}
|
|
var a, e = 0;
|
|
arguments[0] instanceof Function ? a = arguments[0] : b.isNumber(arguments[0]) && (e = arguments[0]);
|
|
b.isNumber(arguments[1]) && (e = arguments[1]);
|
|
if (e & c.NUMERIC) {
|
|
return this._sortNumeric(e & c.DESCENDING);
|
|
}
|
|
Array.prototype.sort.call(this._view(), function(b, d) {
|
|
return c.compare(b, d, e, a);
|
|
});
|
|
};
|
|
c.prototype.asGetNumericProperty = function(a) {
|
|
d(a, this._length);
|
|
return this._buffer[this._offset + a];
|
|
};
|
|
c.prototype.asSetNumericProperty = function(b, c) {
|
|
a(b, this._length, this._fixed);
|
|
b === this._length && (this._ensureCapacity(this._length + 1), this._length++);
|
|
this._buffer[this._offset + b] = c;
|
|
};
|
|
c.prototype.shift = function() {
|
|
this._checkFixed();
|
|
if (0 === this._length) {
|
|
return 0;
|
|
}
|
|
this._length--;
|
|
return this._buffer[this._offset++];
|
|
};
|
|
c.prototype._checkFixed = function() {
|
|
this._fixed && s("RangeError", k.Errors.VectorFixedError);
|
|
};
|
|
c.prototype._slide = function(a) {
|
|
this._buffer.set(this._view(), this._offset + a);
|
|
this._offset += a;
|
|
};
|
|
c.prototype.unshift = function() {
|
|
this._checkFixed();
|
|
if (arguments.length) {
|
|
this._ensureCapacity(this._length + arguments.length);
|
|
this._slide(arguments.length);
|
|
this._offset -= arguments.length;
|
|
this._length += arguments.length;
|
|
for (var a = 0;a < arguments.length;a++) {
|
|
this._buffer[this._offset + a] = arguments[a];
|
|
}
|
|
}
|
|
};
|
|
c.prototype.asHasProperty = function(a, e, d) {
|
|
if (c.prototype === this || !b.isNumeric(e)) {
|
|
return Object.prototype.asHasProperty.call(this, a, e, d);
|
|
}
|
|
a = b.toNumber(e);
|
|
return 0 <= a && a < this._length;
|
|
};
|
|
Object.defineProperty(c.prototype, "length", {get:function() {
|
|
return this._length;
|
|
}, set:function(a) {
|
|
a >>>= 0;
|
|
if (a > this._length) {
|
|
this._ensureCapacity(a);
|
|
for (var b = this._offset + this._length, d = this._offset + a;b < d;b++) {
|
|
this._buffer[b] = c.DEFAULT_VALUE;
|
|
}
|
|
}
|
|
this._length = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "fixed", {get:function() {
|
|
return this._fixed;
|
|
}, set:function(a) {
|
|
this._fixed = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype._spliceHelper = function(a, b, c, d, n) {
|
|
b = m(b, 0, d.length - n);
|
|
c = m(c, 0, this._length - a);
|
|
this._ensureCapacity(this._length - c + b);
|
|
var f = this._offset + a + c;
|
|
this._buffer.set(this._buffer.subarray(f, f + this._length - a - c), this._offset + a + b);
|
|
this._length += b - c;
|
|
for (c = 0;c < b;c++) {
|
|
this._buffer[this._offset + a + c] = d.asGetNumericProperty(n + c);
|
|
}
|
|
};
|
|
c.prototype.asNextName = function(a) {
|
|
return a - 1;
|
|
};
|
|
c.prototype.asNextValue = function(a) {
|
|
return this._buffer[this._offset + a - 1];
|
|
};
|
|
c.prototype.asNextNameIndex = function(a) {
|
|
a += 1;
|
|
return a <= this._length ? a : 0;
|
|
};
|
|
c.prototype.asHasNext2 = function(a) {
|
|
a.index = this.asNextNameIndex(a.index);
|
|
};
|
|
c.EXTRA_CAPACITY = 4;
|
|
c.INITIAL_CAPACITY = 10;
|
|
c.DEFAULT_VALUE = 0;
|
|
c.CASEINSENSITIVE = 1;
|
|
c.DESCENDING = 2;
|
|
c.UNIQUESORT = 4;
|
|
c.RETURNINDEXEDARRAY = 8;
|
|
c.NUMERIC = 16;
|
|
return c;
|
|
}();
|
|
g.Float64Vector = c;
|
|
c.prototype._reverse = c.prototype.reverse;
|
|
c.prototype._filter = c.prototype.filter;
|
|
c.prototype._map = c.prototype.map;
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(a) {
|
|
for (var b = 0;b < arguments.length - 1;b++) {
|
|
}
|
|
}
|
|
function t(a, b) {
|
|
if (0 === b.length) {
|
|
return a.sort();
|
|
}
|
|
var c, h = 0;
|
|
b[0] instanceof Function ? c = b[0] : q(b[0]) && (h = b[0]);
|
|
q(b[1]) && (h = b[1]);
|
|
a.sort(function(a, b) {
|
|
return B(a, b, h, c);
|
|
});
|
|
return a;
|
|
}
|
|
function s(a, b) {
|
|
y(!la[a], "Native function: " + a + " is already registered.");
|
|
la[a] = b;
|
|
}
|
|
function m(a) {
|
|
switch(a) {
|
|
case "prototype":
|
|
return "native_prototype";
|
|
case "hasOwnProperty":
|
|
return "native_hasOwnProperty";
|
|
case "isPrototypeOf":
|
|
return "native_isPrototypeOf";
|
|
case "propertyIsEnumerable":
|
|
return "native_propertyIsEnumerable";
|
|
default:
|
|
return a;
|
|
}
|
|
}
|
|
function d(a) {
|
|
f("getNative(" + a + ")");
|
|
for (var b = a.split("."), c = wa, h = 0, d = b.length;h < d;h++) {
|
|
c = c && c[b[h]];
|
|
}
|
|
c || (c = la[a]);
|
|
y(c, "getNative(" + a + ") not found.");
|
|
y(0 > ia.indexOf(c), "Leaking illegal function.");
|
|
return c;
|
|
}
|
|
var a = b.AVM2.ABC.Multiname, c = b.AVM2.Runtime.Scope, n = b.ObjectUtilities.hasOwnProperty, p = b.ObjectUtilities.hasOwnGetter, e = b.ObjectUtilities.defineNonEnumerableProperty, q = b.isNumber, l = b.isNullOrUndefined, u = b.ObjectUtilities.createObject, w = b.ObjectUtilities.isPrototypeWriteable, r = b.ObjectUtilities.getOwnPropertyDescriptor, h = b.Debug.notImplemented, x = b.AVM2.Runtime.asCoerceString, y = b.Debug.assert, G = b.AVM2.Runtime.createFunction, I = b.AVM2.Runtime, C = b.ObjectUtilities.boxValue,
|
|
E = b.ObjectUtilities.createEmptyObject, O = b.AVM2.Runtime.ClassBindings, K = b.AVM2.Runtime.InstanceBindings, F = b.AVM2.AS.Int32Vector, J = b.AVM2.AS.Uint32Vector, A = b.AVM2.AS.Float64Vector, B = b.AVM2.Runtime.asCompare;
|
|
(function(a) {
|
|
a[a.NONE = 0] = "NONE";
|
|
a[a.OWN_INITIALIZE = 1] = "OWN_INITIALIZE";
|
|
a[a.SUPER_INITIALIZE = 2] = "SUPER_INITIALIZE";
|
|
})(g.InitializationFlags || (g.InitializationFlags = {}));
|
|
var z = function() {
|
|
function c() {
|
|
}
|
|
c.morphIntoASClass = function(a) {
|
|
this.classInfo = a;
|
|
this.__proto__ = D.prototype;
|
|
};
|
|
c.create = function(a, b, c) {
|
|
D.create(a, b, this.instanceConstructor);
|
|
};
|
|
c.initializeFrom = function(a) {
|
|
return L.initializeFrom.call(this, a);
|
|
};
|
|
c.asCall = function(a) {
|
|
for (var b = [], c = 0;c < arguments.length - 1;c++) {
|
|
b[c] = arguments[c + 1];
|
|
}
|
|
return this.callableConstructor.apply(a, b);
|
|
};
|
|
c.asApply = function(a, b) {
|
|
return this.callableConstructor.apply(a, b);
|
|
};
|
|
c.verify = function() {
|
|
L.verify.call(this);
|
|
};
|
|
c.trace = function(a) {
|
|
L.trace.call(this, a);
|
|
};
|
|
c.getQualifiedClassName = function() {
|
|
return L.getQualifiedClassName.call(this);
|
|
};
|
|
c._setPropertyIsEnumerable = function(b, c, h) {
|
|
c = a.getPublicQualifiedName(c);
|
|
h = r(b, c);
|
|
h.enumerable = !1;
|
|
Object.defineProperty(b, c, h);
|
|
};
|
|
c._dontEnumPrototype = function(b) {
|
|
for (var c in b) {
|
|
if (a.isPublicQualifiedName(c)) {
|
|
var h = r(b, c);
|
|
h.enumerable = !1;
|
|
Object.defineProperty(b, c, h);
|
|
}
|
|
}
|
|
};
|
|
c.prototype.native_isPrototypeOf = function(a) {
|
|
h("isPrototypeOf");
|
|
return!1;
|
|
};
|
|
c.prototype.native_hasOwnProperty = function(a) {
|
|
return this.asHasOwnProperty(null, a, 0);
|
|
};
|
|
c.prototype.native_propertyIsEnumerable = function(a) {
|
|
return this.asPropertyIsEnumerable(null, a, 0);
|
|
};
|
|
c.prototype.setPropertyIsEnumerable = function(a, b) {
|
|
c._setPropertyIsEnumerable(this, a, b);
|
|
};
|
|
c.prototype.toString = function() {
|
|
var a = C(this);
|
|
return a instanceof D ? b.StringUtilities.concat3("[class ", a.classInfo.instanceInfo.name.name, "]") : b.StringUtilities.concat3("[object ", a.class.classInfo.instanceInfo.name.name, "]");
|
|
};
|
|
c.baseClass = null;
|
|
c.instanceConstructor = Object;
|
|
c.instanceConstructorNoInitialize = null;
|
|
c.initializer = null;
|
|
c.initializers = null;
|
|
c.classInitializer = null;
|
|
c.callableConstructor = c.instanceConstructor;
|
|
c.defaultValue = null;
|
|
c.initializationFlags = 0;
|
|
c.call = Function.prototype.call;
|
|
c.apply = Function.prototype.apply;
|
|
c.coerce = I.asCoerceObject;
|
|
c.defineProperty = Object.defineProperty;
|
|
return c;
|
|
}();
|
|
g.ASObject = z;
|
|
var P = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b.baseClass = null;
|
|
b.classInfo = null;
|
|
b.instanceConstructor = null;
|
|
b.callableConstructor = null;
|
|
b.classBindings = null;
|
|
b.instanceBindings = null;
|
|
b.staticNatives = null;
|
|
b.instanceNatives = null;
|
|
b.traitsPrototype = null;
|
|
b.dynamicPrototype = null;
|
|
b.defaultValue = null;
|
|
b.initializationFlags = 0;
|
|
return b;
|
|
}(z);
|
|
g.ASNative = P;
|
|
var D = function(c) {
|
|
function d(a) {
|
|
this.classInfo = a;
|
|
this.instanceNatives = this.staticNatives = null;
|
|
this.initializationFlags = 0;
|
|
this.defaultValue = null;
|
|
}
|
|
__extends(d, c);
|
|
d.configureBuiltinPrototype = function(a, b) {
|
|
y(a.instanceConstructor);
|
|
a.baseClass = b;
|
|
a.dynamicPrototype = a.traitsPrototype = a.instanceConstructor.prototype;
|
|
};
|
|
d.configurePrototype = function(a, c) {
|
|
a.baseClass = c;
|
|
a.dynamicPrototype = u(c.dynamicPrototype);
|
|
a.traitsPrototype = u(a.dynamicPrototype);
|
|
for (var h = a.traitsPrototype, d = [];a;) {
|
|
d.push(a), a = a.baseClass;
|
|
}
|
|
for (var e = 0;e < d.length;e++) {
|
|
var l = [d[e].typeScriptPrototype];
|
|
d[e].instanceNatives && b.ArrayUtilities.pushMany(l, d[e].instanceNatives);
|
|
for (var r = 0;r < l.length;r++) {
|
|
var f = l[r], p;
|
|
for (p in f) {
|
|
if (!(0 < e && "toString" === p) && n(f, p) && !n(h, p)) {
|
|
var q = Object.getOwnPropertyDescriptor(f, p);
|
|
b.Debug.assert(q);
|
|
try {
|
|
Object.defineProperty(h, p, q);
|
|
} catch (x) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
d.create = function(c, h, l) {
|
|
y(!c.instanceConstructorNoInitialize, "This should not be set yet.");
|
|
y(!c.dynamicPrototype && !c.traitsPrototype, "These should not be set yet.");
|
|
c.typeScriptPrototype = c.prototype;
|
|
c.instanceConstructor && !w(c.instanceConstructor) ? d.configureBuiltinPrototype(c, h) : d.configurePrototype(c, h);
|
|
c.instanceConstructor || (c.instanceConstructor = l, c !== l && (c.instanceConstructor.__proto__ = c));
|
|
c.callableConstructor || (c.callableConstructor = c.coerce.bind(c));
|
|
c.instanceConstructorNoInitialize = c.instanceConstructor;
|
|
c.instanceConstructor.prototype = c.traitsPrototype;
|
|
e(c.instanceConstructor.prototype, "class", c);
|
|
e(c.dynamicPrototype, a.getPublicQualifiedName("constructor"), c);
|
|
c.protocol && b.ObjectUtilities.copyOwnPropertyDescriptors(c.traitsPrototype, c.protocol);
|
|
};
|
|
d.prototype.initializeFrom = function(a) {
|
|
var b = Object.create(this.traitsPrototype);
|
|
d.runInitializers(b, a);
|
|
return b;
|
|
};
|
|
d.runInitializers = function(a, b) {
|
|
b = b || a.class.defaultInitializerArgument;
|
|
var c = a.class.initializers;
|
|
if (c) {
|
|
for (var h = 0;h < c.length;h++) {
|
|
c[h].call(a, b);
|
|
}
|
|
}
|
|
};
|
|
d.configureInitializers = function(a) {
|
|
a.baseClass && a.baseClass.initializers && (a.initializers = a.baseClass.initializers.slice(0));
|
|
a.initializer && (a.initializers || (a.initializers = []), a.initializers.push(a.initializer));
|
|
a.initializers && (y(a.instanceConstructorNoInitialize === a.instanceConstructor), a.instanceConstructor = function() {
|
|
for (var b = 0;b < arguments.length - 0;b++) {
|
|
}
|
|
d.runInitializers(this, void 0);
|
|
return a.instanceConstructorNoInitialize.apply(this, arguments);
|
|
}, a.instanceConstructor.prototype = a.traitsPrototype, e(a.instanceConstructor.prototype, "class", a), a.instanceConstructor.classInfo = a.classInfo, a.instanceConstructor.__proto__ = a);
|
|
};
|
|
d.runClassInitializer = function(a) {
|
|
a.classInitializer && a.classInitializer();
|
|
};
|
|
d.linkSymbols = function(b) {
|
|
function c(b, d, e) {
|
|
for (var l = 0;l < d.length;l++) {
|
|
var r = d[l], n;
|
|
a: {
|
|
n = b;
|
|
for (var f = r.name.name, q = 0;q < n.length;q++) {
|
|
var x = n[q];
|
|
if (0 <= x.indexOf(f) && ("!" === x[x.length - 1] && (x = x.slice(0, x.length - 1)), f === x)) {
|
|
n = !0;
|
|
break a;
|
|
}
|
|
}
|
|
n = !1;
|
|
}
|
|
if (n) {
|
|
y(!r.name.getNamespace().isPrivate(), "Why are you linking against private members?");
|
|
if (r.isConst()) {
|
|
h("Don't link against const traits.");
|
|
break;
|
|
}
|
|
n = r.name.name;
|
|
f = a.getQualifiedName(r.name);
|
|
r.isSlot() ? Object.defineProperty(e, n, {get:new Function("", "return this." + f), set:new Function("v", "this." + f + " = v")}) : r.isMethod() ? (y(!e[n], "Symbol should not already exist."), y(e.asOpenMethods[f], "There should be an open method for this symbol."), e[n] = e.asOpenMethods[f]) : r.isGetter() ? (y(p(e, f), "There should be an getter method for this symbol."), Object.defineProperty(e, n, {get:new Function("", "return this." + f)})) : h(r);
|
|
}
|
|
}
|
|
}
|
|
b.classSymbols && c(b.classSymbols, b.classInfo.traits, b);
|
|
b.instanceSymbols && c(b.instanceSymbols, b.classInfo.instanceInfo.traits, b.traitsPrototype);
|
|
};
|
|
d.prototype.morphIntoASClass = function(a) {
|
|
y(this.classInfo === a);
|
|
y(this instanceof d);
|
|
};
|
|
Object.defineProperty(d.prototype, "native_prototype", {get:function() {
|
|
y(this.dynamicPrototype);
|
|
return this.dynamicPrototype;
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.asCall = function(a) {
|
|
for (var b = [], c = 0;c < arguments.length - 1;c++) {
|
|
b[c] = arguments[c + 1];
|
|
}
|
|
return this.coerce(b[0]);
|
|
};
|
|
d.prototype.asApply = function(a, b) {
|
|
return this.coerce(b[0]);
|
|
};
|
|
d.prototype.applyType = function(a) {
|
|
debugger;
|
|
return null;
|
|
};
|
|
d.prototype.isInstanceOf = function(a) {
|
|
return this.isInterface() ? !1 : this.isType(a);
|
|
};
|
|
d.prototype.isType = function(c) {
|
|
if (b.isNullOrUndefined(c)) {
|
|
return!1;
|
|
}
|
|
c = C(c);
|
|
if (this.isInterface()) {
|
|
if (null === c || "object" !== typeof c) {
|
|
return!1;
|
|
}
|
|
y(c.class.implementedInterfaces, "No 'implementedInterfaces' map found on class " + c.class);
|
|
var h = a.getQualifiedName(this.classInfo.instanceInfo.name);
|
|
return void 0 !== c.class.implementedInterfaces[h];
|
|
}
|
|
return this.dynamicPrototype.isPrototypeOf(c);
|
|
};
|
|
d.prototype.isSubtypeOf = function(a) {
|
|
for (var b = this;b;) {
|
|
if (b.traitsPrototype === a.traitsPrototype) {
|
|
return!0;
|
|
}
|
|
b = b.baseClass;
|
|
}
|
|
return!1;
|
|
};
|
|
d.prototype.coerce = function(a) {
|
|
f(b.StringUtilities.concat4("Coercing ", a, " to ", this));
|
|
return a;
|
|
};
|
|
d.prototype.isInterface = function() {
|
|
return this.classInfo.instanceInfo.isInterface();
|
|
};
|
|
d.prototype.getQualifiedClassName = function() {
|
|
var a = this.classInfo.instanceInfo.name, b = a.namespaces[0].uri;
|
|
return b ? b + "::" + a.name : a.name;
|
|
};
|
|
d.prototype.verify = function() {
|
|
function a(b, c, h) {
|
|
for (var d = 0;d < b.length;d++) {
|
|
if (c(b[d], h)) {
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
}
|
|
if (!this.isInterface()) {
|
|
var c = [this.classInfo.traits, this.classInfo.instanceInfo.traits], h = [this];
|
|
this.staticNatives && b.ArrayUtilities.pushMany(h, this.staticNatives);
|
|
var d = [this.prototype];
|
|
this.instanceNatives && b.ArrayUtilities.pushMany(d, this.instanceNatives);
|
|
this === z ? y(!this.baseClass, "ASObject should have no base class.") : (y(this.baseClass, this.classInfo.instanceInfo.name + " has no base class."), y(this.baseClass !== this));
|
|
y(this.traitsPrototype === this.instanceConstructor.prototype, "The traitsPrototype is not set correctly.");
|
|
for (var e = 0;e < c.length;e++) {
|
|
for (var l = 0 === e, r = 0;r < c[e].length;r++) {
|
|
var n = c[e][r], f = m(n.name.name);
|
|
if (n.isMethodOrAccessor() && n.methodInfo.isNative()) {
|
|
var p = l ? h : d;
|
|
n.isMethod() ? a(p, b.ObjectUtilities.hasOwnProperty, f) : n.isGetter() ? a(p, b.ObjectUtilities.hasOwnGetter, f) : n.isSetter() && a(p, b.ObjectUtilities.hasOwnSetter, f);
|
|
}
|
|
}
|
|
}
|
|
b.Debug.assert(this.instanceConstructor, "Must have a constructor function.");
|
|
}
|
|
};
|
|
d.labelObject = function(a) {
|
|
if (!a) {
|
|
return a;
|
|
}
|
|
n(a, "labelId") || (a.labelId = d.labelCounter++);
|
|
return a instanceof Function ? "Function [#" + a.labelId + "]" : "Object [#" + a.labelId + "]";
|
|
};
|
|
d.prototype.trace = function(a) {
|
|
a.enter("Class: " + this.classInfo);
|
|
a.writeLn("baseClass: " + (this.baseClass ? this.baseClass.classInfo.instanceInfo.name : null));
|
|
a.writeLn("instanceConstructor: " + this.instanceConstructor + " " + d.labelObject(this.instanceConstructor));
|
|
a.writeLn("instanceConstructorNoInitialize: " + this.instanceConstructorNoInitialize + " " + d.labelObject(this.instanceConstructorNoInitialize));
|
|
a.writeLn("traitsPrototype: " + d.labelObject(this.traitsPrototype));
|
|
a.writeLn("traitsPrototype.__proto__: " + d.labelObject(this.traitsPrototype.__proto__));
|
|
a.writeLn("dynamicPrototype: " + d.labelObject(this.dynamicPrototype));
|
|
a.writeLn("dynamicPrototype.__proto__: " + d.labelObject(this.dynamicPrototype.__proto__));
|
|
a.writeLn("instanceConstructor.prototype: " + d.labelObject(this.instanceConstructor.prototype));
|
|
a.leave("}");
|
|
};
|
|
d.instanceConstructor = d;
|
|
d.staticNatives = null;
|
|
d.instanceNatives = null;
|
|
d.labelCounter = 0;
|
|
return d;
|
|
}(z);
|
|
g.ASClass = D;
|
|
var L = D.prototype;
|
|
L.call = Function.prototype.call;
|
|
L.apply = Function.prototype.apply;
|
|
var M = function(a) {
|
|
function b() {
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "native_prototype", {get:function() {
|
|
return this.prototype;
|
|
}, set:function(a) {
|
|
this.prototype = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "native_length", {get:function() {
|
|
return this.hasOwnProperty(I.VM_LENGTH) ? this.asLength : this.length;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.baseClass = null;
|
|
b.instanceConstructor = Function;
|
|
b.staticNatives = [Function];
|
|
b.instanceNatives = [Function.prototype];
|
|
return b;
|
|
}(z);
|
|
g.ASFunction = M;
|
|
var V = function(a) {
|
|
function b(a) {
|
|
}
|
|
__extends(b, a);
|
|
b.instanceConstructor = Boolean;
|
|
b.callableConstructor = b.instanceConstructor;
|
|
b.staticNatives = null;
|
|
b.instanceNatives = null;
|
|
b.coerce = I.asCoerceBoolean;
|
|
return b;
|
|
}(z);
|
|
g.ASBoolean = V;
|
|
V.prototype.toString = Boolean.prototype.toString;
|
|
V.prototype.valueOf = Boolean.prototype.valueOf;
|
|
var Q = function(a) {
|
|
function c(a, h) {
|
|
var d = b.FunctionUtilities.bindSafely(h, a);
|
|
e(this, "call", d.call.bind(d));
|
|
e(this, "apply", d.apply.bind(d));
|
|
}
|
|
__extends(c, a);
|
|
c.prototype.toString = function() {
|
|
return "function Function() {}";
|
|
};
|
|
c.staticNatives = null;
|
|
c.instanceNatives = null;
|
|
return c.instanceConstructor = c;
|
|
}(M);
|
|
g.ASMethodClosure = Q;
|
|
var U = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b._numberToString = function(a, b) {
|
|
return Number(a).toString(b | 0);
|
|
};
|
|
b._minValue = function() {
|
|
return Number.MIN_VALUE;
|
|
};
|
|
b.instanceConstructor = Number;
|
|
b.callableConstructor = b.instanceConstructor;
|
|
b.staticNatives = [Math];
|
|
b.instanceNatives = [Number.prototype];
|
|
b.defaultValue = Number(0);
|
|
b.coerce = I.asCoerceNumber;
|
|
return b;
|
|
}(z);
|
|
g.ASNumber = U;
|
|
var S = function(a) {
|
|
function b(a) {
|
|
return Object(Number(a | 0));
|
|
}
|
|
__extends(b, a);
|
|
b.asCall = function(a) {
|
|
for (var b = [], c = 0;c < arguments.length - 1;c++) {
|
|
b[c] = arguments[c + 1];
|
|
}
|
|
return b[0] | 0;
|
|
};
|
|
b.asApply = function(a, b) {
|
|
return b[0] | 0;
|
|
};
|
|
b.isInstanceOf = function(a) {
|
|
return!1;
|
|
};
|
|
b.isType = function(a) {
|
|
return q(a) || a instanceof Number ? (a = +a, (a | 0) === a) : !1;
|
|
};
|
|
b.instanceConstructor = b;
|
|
b.callableConstructor = b.instanceConstructor;
|
|
b.staticNatives = [Math];
|
|
b.instanceNatives = [Number.prototype];
|
|
b.defaultValue = 0;
|
|
b.coerce = I.asCoerceInt;
|
|
return b;
|
|
}(z);
|
|
g.ASInt = S;
|
|
var aa = function(a) {
|
|
function b(a) {
|
|
return Object(Number(a >>> 0));
|
|
}
|
|
__extends(b, a);
|
|
b.asCall = function(a) {
|
|
for (var b = [], c = 0;c < arguments.length - 1;c++) {
|
|
b[c] = arguments[c + 1];
|
|
}
|
|
return b[0] >>> 0;
|
|
};
|
|
b.asApply = function(a, b) {
|
|
return b[0] >>> 0;
|
|
};
|
|
b.isInstanceOf = function(a) {
|
|
return!1;
|
|
};
|
|
b.isType = function(a) {
|
|
return q(a) || a instanceof Number ? (a = +a, a >>> 0 === a) : !1;
|
|
};
|
|
b.instanceConstructor = b;
|
|
b.callableConstructor = b.instanceConstructor;
|
|
b.staticNatives = [Math];
|
|
b.instanceNatives = [Number.prototype];
|
|
b.defaultValue = 0;
|
|
b.coerce = I.asCoerceUint;
|
|
return b;
|
|
}(z);
|
|
g.ASUint = aa;
|
|
var $ = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "native_length", {get:function() {
|
|
return this.length;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.match = function(a) {
|
|
if (void 0 === a || null === a) {
|
|
return null;
|
|
}
|
|
if (a instanceof RegExp && a.global) {
|
|
for (var b = [], c;c = a.exec(this);) {
|
|
b.push(c[0]);
|
|
}
|
|
return b;
|
|
}
|
|
a instanceof RegExp || "string" === typeof a || (a = String(a));
|
|
return this.match(a);
|
|
};
|
|
b.prototype.search = function(a) {
|
|
return void 0 === a ? -1 : this.search(a);
|
|
};
|
|
b.prototype.toUpperCase = function() {
|
|
var a = String.prototype.toUpperCase.apply(this);
|
|
return a = a.replace(/\u039C/g, String.fromCharCode(181));
|
|
};
|
|
b.prototype.toLocaleUpperCase = function() {
|
|
var a = String.prototype.toLocaleUpperCase.apply(this);
|
|
return a = a.replace(/\u039C/g, String.fromCharCode(181));
|
|
};
|
|
b.instanceConstructor = String;
|
|
b.callableConstructor = b.instanceConstructor;
|
|
b.staticNatives = [String];
|
|
b.instanceNatives = [String.prototype];
|
|
b.coerce = I.asCoerceString;
|
|
return b;
|
|
}(z);
|
|
g.ASString = $;
|
|
g.arraySort = t;
|
|
var ea = function(c) {
|
|
function h() {
|
|
c.apply(this, arguments);
|
|
}
|
|
__extends(h, c);
|
|
h._splice = function(a, b) {
|
|
return 0 === b.length ? void 0 : a.splice.apply(a, b);
|
|
};
|
|
h._sort = function(a, b) {
|
|
if (0 === b.length) {
|
|
return a.sort();
|
|
}
|
|
var c, h = 0;
|
|
b[0] instanceof Function ? c = b[0] : q(b[0]) && (h = b[0]);
|
|
q(b[1]) && (h = b[1]);
|
|
a.sort(function(a, b) {
|
|
return I.asCompare(a, b, h, c);
|
|
});
|
|
return a;
|
|
};
|
|
h._sortOn = function(c, d, e) {
|
|
b.isString(d) && (d = [d]);
|
|
q(e) && (e = [e]);
|
|
for (var l = d.length - 1;0 <= l;l--) {
|
|
var r = a.getPublicQualifiedName(d[l]);
|
|
if (h.CACHE_NUMERIC_COMPARATORS && e[l] & 16) {
|
|
var n = "var x = +(a." + r + "), y = +(b." + r + ");", n = e[l] & 2 ? n + "return x < y ? 1 : (x > y ? -1 : 0);" : n + "return x < y ? -1 : (x > y ? 1 : 0);", f = h.numericComparatorCache[n];
|
|
f || (f = h.numericComparatorCache[n] = new Function("a", "b", n));
|
|
c.sort(f);
|
|
} else {
|
|
c.sort(function(a, b) {
|
|
return I.asCompare(a[r], b[r], e[l] | 0);
|
|
});
|
|
}
|
|
}
|
|
return c;
|
|
};
|
|
h._every = function(a, b, c) {
|
|
for (var h = 0;h < a.length && !0 === b.call(c, a[h], h, a);h++) {
|
|
}
|
|
return!1;
|
|
};
|
|
h._filter = function(a, b, c) {
|
|
for (var h = [], d = 0;d < a.length;d++) {
|
|
!0 === b.call(c, a[d], d, a) && h.push(a[d]);
|
|
}
|
|
return h;
|
|
};
|
|
Object.defineProperty(h.prototype, "native_length", {get:function() {
|
|
return this.length;
|
|
}, set:function(a) {
|
|
this.length = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
h.instanceConstructor = Array;
|
|
h.staticNatives = [Array];
|
|
h.instanceNatives = [Array.prototype];
|
|
h.CACHE_NUMERIC_COMPARATORS = !0;
|
|
h.numericComparatorCache = E();
|
|
return h;
|
|
}(z);
|
|
g.ASArray = ea;
|
|
var Z = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.newThisType = function() {
|
|
return new this.class.instanceConstructor;
|
|
};
|
|
b.staticNatives = null;
|
|
b.instanceNatives = null;
|
|
b.instanceConstructor = b;
|
|
b.callableConstructor = null;
|
|
return b;
|
|
}(P);
|
|
g.ASVector = Z;
|
|
var v = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b._every = function(a, b, c) {
|
|
return a.every(b, c);
|
|
};
|
|
b._forEach = function(a, b, c) {
|
|
return a.forEach(b, c);
|
|
};
|
|
b._some = function(a, b, c) {
|
|
return a.some(b, c);
|
|
};
|
|
b.instanceConstructor = F;
|
|
b.staticNatives = [F];
|
|
b.instanceNatives = [F.prototype, Z.prototype];
|
|
b.callableConstructor = F.callable;
|
|
b._sort = t;
|
|
return b;
|
|
}(Z);
|
|
g.ASIntVector = v;
|
|
var X = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b._every = function(a, b, c) {
|
|
return a.every(b, c);
|
|
};
|
|
b._forEach = function(a, b, c) {
|
|
return a.forEach(b, c);
|
|
};
|
|
b._some = function(a, b, c) {
|
|
return a.some(b, c);
|
|
};
|
|
b.instanceConstructor = J;
|
|
b.staticNatives = [J];
|
|
b.instanceNatives = [J.prototype, Z.prototype];
|
|
b.callableConstructor = J.callable;
|
|
b._sort = t;
|
|
return b;
|
|
}(Z);
|
|
g.ASUIntVector = X;
|
|
var ba = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b._every = function(a, b, c) {
|
|
return a.every(b, c);
|
|
};
|
|
b._forEach = function(a, b, c) {
|
|
return a.forEach(b, c);
|
|
};
|
|
b._some = function(a, b, c) {
|
|
return a.some(b, c);
|
|
};
|
|
b.instanceConstructor = A;
|
|
b.staticNatives = [A];
|
|
b.instanceNatives = [A.prototype, Z.prototype];
|
|
b.callableConstructor = A.callable;
|
|
b._sort = t;
|
|
return b;
|
|
}(Z);
|
|
g.ASDoubleVector = ba;
|
|
var R = function(c) {
|
|
function h() {
|
|
c.apply(this, arguments);
|
|
}
|
|
__extends(h, c);
|
|
h.transformJSValueToAS = function(a) {
|
|
if ("object" !== typeof a) {
|
|
return a;
|
|
}
|
|
for (var b = Object.keys(a), c = a instanceof Array ? [] : {}, d = 0;d < b.length;d++) {
|
|
c.asSetPublicProperty(b[d], h.transformJSValueToAS(a[b[d]]));
|
|
}
|
|
return c;
|
|
};
|
|
h.transformASValueToJS = function(c) {
|
|
if ("object" !== typeof c || l(c)) {
|
|
return c;
|
|
}
|
|
for (var d = Object.keys(c), e = c instanceof Array ? [] : {}, r = 0;r < d.length;r++) {
|
|
var n = d[r], f = n;
|
|
b.isNumeric(n) || (f = a.getNameFromPublicQualifiedName(n));
|
|
e[f] = h.transformASValueToJS(c[n]);
|
|
}
|
|
return e;
|
|
};
|
|
h.parseCore = function(a) {
|
|
a = x(a);
|
|
return h.transformJSValueToAS(JSON.parse(a));
|
|
};
|
|
h.stringifySpecializedToString = function(a, b, c, d) {
|
|
return JSON.stringify(h.transformASValueToJS(a), c, d);
|
|
};
|
|
h.instanceConstructor = h;
|
|
h.staticNatives = null;
|
|
h.instanceNatives = null;
|
|
return h;
|
|
}(z);
|
|
g.ASJSON = R;
|
|
var H = function(a) {
|
|
function c(a, b) {
|
|
h("ASError");
|
|
}
|
|
__extends(c, a);
|
|
c.prototype.getStackTrace = function() {
|
|
return b.AVM2.Runtime.AVM2.getStackTrace();
|
|
};
|
|
c.instanceConstructor = null;
|
|
c.staticNatives = null;
|
|
c.instanceNatives = null;
|
|
c.getErrorMessage = b.AVM2.getErrorMessage;
|
|
return c;
|
|
}(P);
|
|
g.ASError = H;
|
|
var Y = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASDefinitionError = Y;
|
|
var ga = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASEvalError = ga;
|
|
var ca = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASRangeError = ca;
|
|
var ka = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASReferenceError = ka;
|
|
var W = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASSecurityError = W;
|
|
var ha = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASSyntaxError = ha;
|
|
var da = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASTypeError = da;
|
|
var ja = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASURIError = ja;
|
|
var N = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASVerifyError = N;
|
|
var ma = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASUninitializedError = ma;
|
|
var T = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(H);
|
|
g.ASArgumentError = T;
|
|
var oa = function(a) {
|
|
function c() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(c, a);
|
|
Object.defineProperty(c.prototype, "native_source", {get:function() {
|
|
return this.source;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "native_global", {get:function() {
|
|
return this.global;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "native_ignoreCase", {get:function() {
|
|
return this.ignoreCase;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "native_multiline", {get:function() {
|
|
return this.multiline;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "native_lastIndex", {get:function() {
|
|
return this.lastIndex;
|
|
}, set:function(a) {
|
|
this.lastIndex = a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "native_dotall", {get:function() {
|
|
return this.dotall;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "native_extended", {get:function() {
|
|
return this.extended;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.exec = function(a) {
|
|
"undefined" === typeof a && (a = "");
|
|
var c = RegExp.prototype.exec.apply(this, arguments);
|
|
if (!c) {
|
|
return c;
|
|
}
|
|
for (var h = Object.keys(c), d = 0;d < h.length;d++) {
|
|
var e = h[d];
|
|
b.isNumeric(e) || void 0 === c[e] && (c[e] = "");
|
|
}
|
|
b.AVM2.Runtime.publicizeProperties(c);
|
|
return c;
|
|
};
|
|
c.instanceConstructor = k.XRegExp;
|
|
c.staticNatives = [k.XRegExp];
|
|
c.instanceNatives = [k.XRegExp.prototype];
|
|
return c;
|
|
}(z);
|
|
g.ASRegExp = oa;
|
|
var pa = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b.staticNatives = [Math];
|
|
return b;
|
|
}(P);
|
|
g.ASMath = pa;
|
|
var na = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b.staticNatives = [Date];
|
|
b.instanceNatives = [Date.prototype];
|
|
b.instanceConstructor = Date;
|
|
return b;
|
|
}(P);
|
|
g.ASDate = na;
|
|
var fa = b.ObjectUtilities.createMap(), sa = !1;
|
|
g.initialize = function(a) {
|
|
sa || (fa.ObjectClass = z, fa.Class = D, fa.FunctionClass = M, fa.BooleanClass = V, fa.MethodClosureClass = Q, fa.NamespaceClass = g.ASNamespace, fa.NumberClass = U, fa.IntClass = S, fa.UIntClass = aa, fa.StringClass = $, fa.ArrayClass = ea, fa.VectorClass = Z, fa.ObjectVectorClass = g.GenericVector, fa.IntVectorClass = v, fa.UIntVectorClass = X, fa.DoubleVectorClass = ba, fa.JSONClass = R, fa.XMLClass = g.ASXML, fa.XMLListClass = g.ASXMLList, fa.QNameClass = g.ASQName, fa.ErrorClass = H,
|
|
fa.DefinitionErrorClass = Y, fa.EvalErrorClass = ga, fa.RangeErrorClass = ca, fa.ReferenceErrorClass = ka, fa.SecurityErrorClass = W, fa.SyntaxErrorClass = ha, fa.TypeErrorClass = da, fa.URIErrorClass = ja, fa.VerifyErrorClass = N, fa.UninitializedErrorClass = ma, fa.ArgumentErrorClass = T, fa.DateClass = na, fa.MathClass = pa, fa.RegExpClass = oa, fa.ProxyClass = g.flash.utils.OriginalProxy, fa.DictionaryClass = g.flash.utils.OriginalDictionary, fa.ByteArrayClass = g.flash.utils.OriginalByteArray,
|
|
fa.SystemClass = g.flash.system.OriginalSystem, sa = !0);
|
|
};
|
|
var xa = b.ObjectUtilities.createMap(), la = b.ObjectUtilities.createMap();
|
|
g.registerNativeClass = function(a, b) {
|
|
y(!xa[a], "Native class: " + a + " is already registered.");
|
|
xa[a] = b;
|
|
};
|
|
g.registerNativeFunction = s;
|
|
g.createInterface = function(a) {
|
|
var b = a.instanceInfo;
|
|
y(b.isInterface());
|
|
a = new D(a);
|
|
a.interfaceBindings = new K(null, b, null, null);
|
|
a.verify();
|
|
return a;
|
|
};
|
|
var qa = [];
|
|
g.createClass = function(a, h, d) {
|
|
var e = a.instanceInfo, l = a.abc.applicationDomain, r = a.native, n;
|
|
r ? ((n = fa[a.native.cls]) || (n = xa[a.native.cls]), n || b.Debug.unexpected("No native class for " + a.native.cls), n.morphIntoASClass(a), qa && qa.push(n)) : n = new D(a);
|
|
d = new c(d, null);
|
|
d.object = n;
|
|
var f = null;
|
|
e.init.isNative() ? (y(r), f = n) : f = G(e.init, d, !1, !1);
|
|
var p = null, q = null;
|
|
r && (p = [n], n.staticNatives && b.ArrayUtilities.pushMany(p, n.staticNatives), q = [n.prototype], n.instanceNatives && b.ArrayUtilities.pushMany(q, n.instanceNatives));
|
|
D.create(n, h, f);
|
|
n.verify();
|
|
if ("Class" === a.instanceInfo.name.name) {
|
|
for (r = 0;r < qa.length;r++) {
|
|
qa[r].__proto__ = D.prototype;
|
|
}
|
|
qa = null;
|
|
}
|
|
k.enterTimeline("ClassBindings");
|
|
n.classBindings = new O(a, d, p);
|
|
k.enterTimeline("applyTo");
|
|
n.classBindings.applyTo(l, n);
|
|
k.leaveTimeline();
|
|
k.leaveTimeline();
|
|
k.enterTimeline("InstanceBindings");
|
|
n.instanceBindings = new K(h ? h.instanceBindings : null, e, d, q);
|
|
n.instanceConstructor && (k.enterTimeline("applyTo"), n.instanceBindings.applyTo(l, n.traitsPrototype), k.leaveTimeline());
|
|
k.leaveTimeline();
|
|
n.implementedInterfaces = n.instanceBindings.implementedInterfaces;
|
|
n === D ? n.instanceBindings.applyTo(l, z, !0) : D.instanceBindings && D.instanceBindings.applyTo(l, n, !0);
|
|
k.enterTimeline("Configure");
|
|
D.configureInitializers(n);
|
|
D.linkSymbols(n);
|
|
D.runClassInitializer(n);
|
|
k.leaveTimeline();
|
|
return n;
|
|
};
|
|
var ia = [I.forwardValueOf, I.forwardToString];
|
|
g.getMethodOrAccessorNative = function(b, c) {
|
|
var h = m(a.getName(b.name));
|
|
f("getMethodOrAccessorNative(" + h + ")");
|
|
for (var d = 0;d < c.length;d++) {
|
|
var e = c[d], l = h;
|
|
n(e, "original_" + h) && (l = "original_" + h);
|
|
!n(e, h) && n(e, "native_" + h) && (l = "native_" + h);
|
|
if (n(e, l)) {
|
|
return b.isAccessor() ? (h = r(e, l), h = b.isGetter() ? h.get : h.set) : (y(b.isMethod()), h = e[l]), y(h, "Method or Accessor property exists but it's undefined: " + b), y(0 > ia.indexOf(h), "Leaking illegal function."), h;
|
|
}
|
|
}
|
|
f("Cannot find " + b + " in natives.");
|
|
return null;
|
|
};
|
|
g.escapeNativeName = m;
|
|
(function(a) {
|
|
function c(a) {
|
|
for (var b = {prototype:E()}, h = Object.getOwnPropertyNames(a.prototype), d = 0;d < h.length;d++) {
|
|
b.prototype[h[d]] = a.prototype[h[d]];
|
|
}
|
|
return b;
|
|
}
|
|
a.String = jsGlobal.String;
|
|
a.Function = jsGlobal.Function;
|
|
a.Boolean = jsGlobal.Boolean;
|
|
a.Number = jsGlobal.Number;
|
|
a.Date = jsGlobal.Date;
|
|
a.ASObject = b.AVM2.AS.ASObject;
|
|
a.Original = {Date:c(a.Date), Array:c(Array), String:c(a.String), Number:c(a.Number), Boolean:c(a.Boolean)};
|
|
a.print = function() {
|
|
for (var a = [], b = 0;b < arguments.length - 0;b++) {
|
|
a[b] = arguments[b + 0];
|
|
}
|
|
jsGlobal.print.apply(null, a);
|
|
};
|
|
a.notImplemented = function(a) {
|
|
h(a);
|
|
};
|
|
a.debugBreak = function(a) {
|
|
debugger;
|
|
};
|
|
a.bugzilla = function(a) {
|
|
switch(a) {
|
|
case 574600:
|
|
return!0;
|
|
}
|
|
return!1;
|
|
};
|
|
a.decodeURI = jsGlobal.decodeURI;
|
|
a.decodeURIComponent = jsGlobal.decodeURIComponent;
|
|
a.encodeURI = jsGlobal.encodeURI;
|
|
a.encodeURIComponent = jsGlobal.encodeURIComponent;
|
|
a.isNaN = jsGlobal.isNaN;
|
|
a.isFinite = jsGlobal.isFinite;
|
|
a.parseInt = jsGlobal.parseInt;
|
|
a.parseFloat = jsGlobal.parseFloat;
|
|
a.escape = jsGlobal.escape;
|
|
a.unescape = jsGlobal.unescape;
|
|
a.isXMLName = "undefined" !== typeof a.isXMLName ? jsGlobal.isXMLName : function() {
|
|
h("Chrome doesn't support isXMLName.");
|
|
};
|
|
a.getQualifiedClassName = function(a) {
|
|
if (null === a) {
|
|
return "null";
|
|
}
|
|
if (void 0 === a) {
|
|
return "void";
|
|
}
|
|
if (S.isType(a)) {
|
|
return "int";
|
|
}
|
|
a = C(a);
|
|
return D.isType(a) ? a.getQualifiedClassName() : a.class.getQualifiedClassName();
|
|
};
|
|
a.getQualifiedSuperclassName = function(a) {
|
|
if (l(a)) {
|
|
return "null";
|
|
}
|
|
a = C(a);
|
|
a = D.isType(a) ? a : a.class;
|
|
return a.baseClass ? a.baseClass.getQualifiedClassName() : "null";
|
|
};
|
|
a.getDefinitionByName = function(c) {
|
|
c = a.String(c).replace("::", ".");
|
|
return b.AVM2.Runtime.AVM2.currentDomain().getClass(c, !1) || null;
|
|
};
|
|
a.describeTypeJSON = function(a, c) {
|
|
return b.AVM2.AS.describeTypeJSON(a, c);
|
|
};
|
|
})(g.Natives || (g.Natives = {}));
|
|
var wa = g.Natives;
|
|
g.getNative = d;
|
|
s("unsafeJSNative", d);
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.Debug.assert, t = b.Debug.assertNotImplemented, s = b.AVM2.Runtime.throwError, m = b.NumberUtilities.clamp, d = b.AVM2.Runtime.asCheckVectorGetNumericProperty, a = b.AVM2.Runtime.asCheckVectorSetNumericProperty, c = b.AVM2.AS.arraySort, n = function(n) {
|
|
function e(a, b, c) {
|
|
a >>>= 0;
|
|
this._fixed = !!b;
|
|
this._buffer = Array(a);
|
|
this._defaultValue = (this._type = c) ? c.defaultValue : null;
|
|
this._fill(a, this._defaultValue);
|
|
}
|
|
__extends(e, n);
|
|
e.defaultCompareFunction = function(a, b) {
|
|
return String(a).localeCompare(String(b));
|
|
};
|
|
e.compare = function(a, c, d, n) {
|
|
t(!(d & e.CASEINSENSITIVE), "CASEINSENSITIVE");
|
|
t(!(d & e.UNIQUESORT), "UNIQUESORT");
|
|
t(!(d & e.RETURNINDEXEDARRAY), "RETURNINDEXEDARRAY");
|
|
var r = 0;
|
|
n || (n = e.defaultCompareFunction);
|
|
d & e.NUMERIC ? (a = b.toNumber(a), c = b.toNumber(c), r = a < c ? -1 : a > c ? 1 : 0) : r = n(a, c);
|
|
d & e.DESCENDING && (r *= -1);
|
|
return r;
|
|
};
|
|
e._every = function(a, b, c) {
|
|
return a.every(b, c);
|
|
};
|
|
e._forEach = function(a, b, c) {
|
|
return a.forEach(b, c);
|
|
};
|
|
e._some = function(a, b, c) {
|
|
return a.some(b, c);
|
|
};
|
|
e.applyType = function(a) {
|
|
function c(b, d) {
|
|
Function.prototype.call.call(e.instanceConstructor, this, b, d, a);
|
|
}
|
|
c.prototype = e.prototype;
|
|
c.instanceConstructor = c;
|
|
c.callableConstructor = function(a) {
|
|
if (a instanceof g.Int32Vector) {
|
|
return a;
|
|
}
|
|
var d = a.asGetProperty(void 0, "length");
|
|
if (void 0 !== d) {
|
|
for (var e = new c(d, !1), h = 0;h < d;h++) {
|
|
e.asSetNumericProperty(h, a.asGetPublicProperty(h));
|
|
}
|
|
return e;
|
|
}
|
|
b.Debug.unexpected();
|
|
};
|
|
c.__proto__ = e;
|
|
return c;
|
|
};
|
|
e.prototype._fill = function(a, b) {
|
|
for (var c = 0;c < a;c++) {
|
|
this._buffer[0 + c] = b;
|
|
}
|
|
};
|
|
e.prototype.toString = function() {
|
|
for (var a = "", b = 0;b < this._buffer.length;b++) {
|
|
a += this._buffer[b], b < this._buffer.length - 1 && (a += ",");
|
|
}
|
|
return a;
|
|
};
|
|
e.prototype.every = function(a, b) {
|
|
for (var c = 0;c < this._buffer.length;c++) {
|
|
if (!a.call(b, this.asGetNumericProperty(c), c, this)) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
e.prototype.filter = function(a, b) {
|
|
for (var c = new e(0, !1, this._type), d = 0;d < this._buffer.length;d++) {
|
|
a.call(b, this.asGetNumericProperty(d), d, this) && c.push(this.asGetNumericProperty(d));
|
|
}
|
|
return c;
|
|
};
|
|
e.prototype.some = function(a, c) {
|
|
2 !== arguments.length ? s("ArgumentError", k.Errors.WrongArgumentCountError) : b.isFunction(a) || s("ArgumentError", k.Errors.CheckTypeFailedError);
|
|
for (var d = 0;d < this._buffer.length;d++) {
|
|
if (a.call(c, this.asGetNumericProperty(d), d, this)) {
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
};
|
|
e.prototype.forEach = function(a, c) {
|
|
b.isFunction(a) || s("ArgumentError", k.Errors.CheckTypeFailedError);
|
|
for (var d = 0;d < this._buffer.length;d++) {
|
|
a.call(c, this.asGetNumericProperty(d), d, this);
|
|
}
|
|
};
|
|
e.prototype.map = function(a, c) {
|
|
b.isFunction(a) || s("ArgumentError", k.Errors.CheckTypeFailedError);
|
|
for (var d = new e(0, !1, this._type), n = 0;n < this._buffer.length;n++) {
|
|
d.push(a.call(c, this.asGetNumericProperty(n), n, this));
|
|
}
|
|
return d;
|
|
};
|
|
e.prototype.push = function() {
|
|
for (var a = 0;a < arguments.length - 0;a++) {
|
|
}
|
|
this._checkFixed();
|
|
for (a = 0;a < arguments.length;a++) {
|
|
this._buffer.push(this._coerce(arguments[a]));
|
|
}
|
|
};
|
|
e.prototype.pop = function() {
|
|
this._checkFixed();
|
|
return 0 === this._buffer.length ? void 0 : this._buffer.pop();
|
|
};
|
|
e.prototype.reverse = function() {
|
|
this._buffer.reverse();
|
|
};
|
|
e.prototype.sort = function(a) {
|
|
return this._buffer.sort(a);
|
|
};
|
|
e.prototype.asGetNumericProperty = function(a) {
|
|
d(a, this._buffer.length);
|
|
return this._buffer[a];
|
|
};
|
|
e.prototype._coerce = function(a) {
|
|
return this._type ? this._type.coerce(a) : void 0 === a ? null : a;
|
|
};
|
|
e.prototype.asSetNumericProperty = function(b, c) {
|
|
a(b, this._buffer.length, this._fixed);
|
|
this._buffer[b] = this._coerce(c);
|
|
};
|
|
e.prototype.shift = function() {
|
|
this._checkFixed();
|
|
return 0 === this._buffer.length ? void 0 : this._buffer.shift();
|
|
};
|
|
e.prototype._checkFixed = function() {
|
|
this._fixed && s("RangeError", k.Errors.VectorFixedError);
|
|
};
|
|
e.prototype.unshift = function() {
|
|
if (arguments.length) {
|
|
this._checkFixed();
|
|
for (var a = [], b = 0;b < arguments.length;b++) {
|
|
a.push(this._coerce(arguments[b]));
|
|
}
|
|
this._buffer.unshift.apply(this._buffer, a);
|
|
}
|
|
};
|
|
Object.defineProperty(e.prototype, "length", {get:function() {
|
|
return this._buffer.length;
|
|
}, set:function(a) {
|
|
a >>>= 0;
|
|
if (a > this._buffer.length) {
|
|
for (var b = this._buffer.length;b < a;b++) {
|
|
this._buffer[b] = this._defaultValue;
|
|
}
|
|
} else {
|
|
this._buffer.length = a;
|
|
}
|
|
f(this._buffer.length === a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "fixed", {get:function() {
|
|
return this._fixed;
|
|
}, set:function(a) {
|
|
this._fixed = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype._spliceHelper = function(a, b, c, d, e) {
|
|
b = m(b, 0, d.length - e);
|
|
c = m(c, 0, this._buffer.length - a);
|
|
for (var h = [], n = 0;n < b;n++) {
|
|
h.push(this._coerce(d.asGetNumericProperty(e + n)));
|
|
}
|
|
this._buffer.splice.apply(this._buffer, [a, c].concat(h));
|
|
};
|
|
e.prototype.asNextName = function(a) {
|
|
return a - 1;
|
|
};
|
|
e.prototype.asNextValue = function(a) {
|
|
return this._buffer[a - 1];
|
|
};
|
|
e.prototype.asNextNameIndex = function(a) {
|
|
a += 1;
|
|
return a <= this._buffer.length ? a : 0;
|
|
};
|
|
e.prototype.asHasProperty = function(a, c, d) {
|
|
if (e.prototype === this || !b.isNumeric(c)) {
|
|
return Object.prototype.asHasProperty.call(this, a, c, d);
|
|
}
|
|
a = b.toNumber(c);
|
|
return 0 <= a && a < this._buffer.length;
|
|
};
|
|
e.prototype.asHasNext2 = function(a) {
|
|
a.index = this.asNextNameIndex(a.index);
|
|
};
|
|
e.CASEINSENSITIVE = 1;
|
|
e.DESCENDING = 2;
|
|
e.UNIQUESORT = 4;
|
|
e.RETURNINDEXEDARRAY = 8;
|
|
e.NUMERIC = 16;
|
|
e.instanceConstructor = e;
|
|
e.staticNatives = [e];
|
|
e.instanceNatives = [e.prototype, g.ASVector.prototype];
|
|
e._sort = c;
|
|
return e;
|
|
}(g.ASVector);
|
|
g.GenericVector = n;
|
|
n.prototype._reverse = n.prototype.reverse;
|
|
n.prototype._filter = n.prototype.filter;
|
|
n.prototype._map = n.prototype.map;
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(a) {
|
|
return a instanceof Q || a instanceof U;
|
|
}
|
|
function t(a) {
|
|
if ("object" === typeof a && null !== a) {
|
|
if (a instanceof U) {
|
|
return a._children.map(t).join("");
|
|
}
|
|
switch(a._kind) {
|
|
case 3:
|
|
;
|
|
case 2:
|
|
return a._value;
|
|
default:
|
|
return a.hasSimpleContent() ? a._children.map(t).join("") : p(a);
|
|
}
|
|
} else {
|
|
return String(a);
|
|
}
|
|
}
|
|
function s(a) {
|
|
for (var b = 0, c;b < a.length && "&" !== (c = a[b]) && "<" !== c && ">" !== c;) {
|
|
b++;
|
|
}
|
|
if (b >= a.length) {
|
|
return a;
|
|
}
|
|
for (var h = a.substring(0, b);b < a.length;) {
|
|
switch(c = a[b++], c) {
|
|
case "&":
|
|
h += "&";
|
|
break;
|
|
case "<":
|
|
h += "<";
|
|
break;
|
|
case ">":
|
|
h += ">";
|
|
break;
|
|
default:
|
|
h += c;
|
|
}
|
|
}
|
|
return h;
|
|
}
|
|
function m(a) {
|
|
for (var b = 0, c;b < a.length && "&" !== (c = a[b]) && "<" !== c && '"' !== c && "\n" !== c && "\r" !== c && "\t" !== c;) {
|
|
b++;
|
|
}
|
|
if (b >= a.length) {
|
|
return a;
|
|
}
|
|
for (var h = a.substring(0, b);b < a.length;) {
|
|
switch(c = a[b++], c) {
|
|
case "&":
|
|
h += "&";
|
|
break;
|
|
case "<":
|
|
h += "<";
|
|
break;
|
|
case '"':
|
|
h += """;
|
|
break;
|
|
case "\n":
|
|
h += "
";
|
|
break;
|
|
case "\r":
|
|
h += "
";
|
|
break;
|
|
case "\t":
|
|
h += "	";
|
|
break;
|
|
default:
|
|
h += c;
|
|
}
|
|
}
|
|
return h;
|
|
}
|
|
function d(a, b) {
|
|
var c = a[b];
|
|
return " " === c || "\n" === c || "\r" === c || "\t" === c;
|
|
}
|
|
function a(a) {
|
|
for (var b = 0;b < a.length && d(a, b);) {
|
|
b++;
|
|
}
|
|
if (b >= a.length) {
|
|
return "";
|
|
}
|
|
for (var c = a.length - 1;d(a, c);) {
|
|
c--;
|
|
}
|
|
return 0 === b && c === a.length - 1 ? a : a.substring(b, c + 1);
|
|
}
|
|
function c(a) {
|
|
if (0 < a) {
|
|
if (void 0 !== A[a]) {
|
|
return A[a];
|
|
}
|
|
for (var b = "", c = 0;c < a;c++) {
|
|
b += " ";
|
|
}
|
|
return A[a] = b;
|
|
}
|
|
return "";
|
|
}
|
|
function n(a) {
|
|
for (var b = 1, c;;) {
|
|
c = "_ns" + b;
|
|
if (!a.some(function(a) {
|
|
return a.prefix == c;
|
|
})) {
|
|
break;
|
|
}
|
|
b++;
|
|
}
|
|
return c;
|
|
}
|
|
function p(b, h, d) {
|
|
if (null === b || void 0 === b) {
|
|
throw new TypeError;
|
|
}
|
|
if (!(b instanceof Q)) {
|
|
return b instanceof U ? b._children.map(function(a) {
|
|
return p(a, h);
|
|
}).join(Q.prettyPrinting ? "\n" : "") : s(String(b));
|
|
}
|
|
var e = Q.prettyPrinting;
|
|
d |= 0;
|
|
var l = e ? c(d) : "", r = b._kind;
|
|
switch(r) {
|
|
case 3:
|
|
return e ? l + s(a(b._value)) : s(b._value);
|
|
case 2:
|
|
return l + m(b._value);
|
|
case 4:
|
|
return l + "\x3c!--" + b._value + "--\x3e";
|
|
case 5:
|
|
return l + "<?" + b._name.localName + " " + b._value + "?>";
|
|
default:
|
|
y(1 === r);
|
|
}
|
|
h = h || [];
|
|
for (var f = [], q = 0;q < b._inScopeNamespaces.length;q++) {
|
|
var x = b._inScopeNamespaces[q].prefix, g = b._inScopeNamespaces[q].uri;
|
|
h.every(function(a) {
|
|
return a.uri != g || a.prefix != x;
|
|
}) && (r = new z(x, g), f.push(r));
|
|
}
|
|
var w = h.concat(f), r = b._name.getNamespace(w);
|
|
void 0 === r.prefix && (q = n(w), q = new z(q, r.uri), f.push(q), w.push(q));
|
|
var u = (r.prefix ? r.prefix + ":" : "") + b._name.localName, l = l + ("<" + u);
|
|
b._attributes.forEach(function(a) {
|
|
a = a._name.getNamespace(w);
|
|
if (void 0 === a.prefix) {
|
|
var b = n(w);
|
|
a = new z(b, a.uri);
|
|
f.push(a);
|
|
w.push(a);
|
|
}
|
|
});
|
|
for (q = 0;q < f.length;q++) {
|
|
r = f[q], l += " " + (r.prefix ? "xmlns:" + r.prefix : "xmlns") + '="' + m(r.uri) + '"';
|
|
}
|
|
b._attributes.forEach(function(a) {
|
|
var b = a._name, c = b.getNamespace(h);
|
|
l += " " + (c.prefix ? c.prefix + ":" + b.localName : b.localName) + '="' + m(a._value) + '"';
|
|
});
|
|
if (0 === b._children.length) {
|
|
return l += "/>";
|
|
}
|
|
var l = l + ">", k = 1 < b._children.length || 1 === b._children.length && 3 !== b._children[0]._kind, G = e && k ? d + Q.prettyIndent : 0;
|
|
b._children.forEach(function(a, b) {
|
|
e && k && (l += "\n");
|
|
var c = p(a, w, G);
|
|
l += c;
|
|
});
|
|
e && k && (l += "\n" + c(d));
|
|
return l += "</" + u + ">";
|
|
}
|
|
function e(a) {
|
|
if (null === a) {
|
|
throw new TypeError(k.formatErrorMessage(k.Errors.ConvertNullToObjectError));
|
|
}
|
|
if (void 0 === a) {
|
|
throw new TypeError(k.formatErrorMessage(k.Errors.ConvertUndefinedToObjectError));
|
|
}
|
|
if (a instanceof Q) {
|
|
return a;
|
|
}
|
|
if (a instanceof U) {
|
|
if (1 === a.length()) {
|
|
return a._children[0];
|
|
}
|
|
throw new TypeError(k.formatErrorMessage(k.Errors.XMLMarkupMustBeWellFormed));
|
|
}
|
|
a = B.parseFromString(String(a));
|
|
if (0 === a.length()) {
|
|
return a = new h(3);
|
|
}
|
|
if (1 === a.length()) {
|
|
return a._children[0]._parent = null, a._children[0];
|
|
}
|
|
throw "SyntaxError in ToXML";
|
|
}
|
|
function q(a) {
|
|
if (null === a) {
|
|
throw new TypeError(k.formatErrorMessage(k.Errors.ConvertNullToObjectError));
|
|
}
|
|
if (void 0 === a) {
|
|
throw new TypeError(k.formatErrorMessage(k.Errors.ConvertUndefinedToObjectError));
|
|
}
|
|
if (a instanceof h) {
|
|
var b = new x(a.parent, a.name);
|
|
b.appendChild(a);
|
|
return b;
|
|
}
|
|
if (a instanceof x) {
|
|
return a;
|
|
}
|
|
a = e("<parent xmlns='" + Q.defaultNamespace + "'>" + a + "</parent>");
|
|
for (var b = new x, c = 0;c < a.length();c++) {
|
|
var d = a._children[c];
|
|
d._parent = null;
|
|
b.appendChild(d);
|
|
}
|
|
return b;
|
|
}
|
|
function l(a) {
|
|
if (void 0 === a || null === a || "boolean" === typeof a || "number" === typeof a) {
|
|
throw "TypeError: invalid operand to ToAttributeName()";
|
|
}
|
|
if (f(a)) {
|
|
a = t(a);
|
|
} else {
|
|
if ("object" === typeof a && null !== a) {
|
|
if (a instanceof D) {
|
|
return new D(a.uri, a.localName, !0);
|
|
}
|
|
if (G.isQName(a)) {
|
|
return D.fromMultiname(a);
|
|
}
|
|
a = t(a);
|
|
}
|
|
}
|
|
if ("string" === typeof a) {
|
|
var b = Namespace.createNamespace("", ""), b = new D(b, a, !0)
|
|
}
|
|
return b;
|
|
}
|
|
function u(a) {
|
|
if (void 0 === a) {
|
|
return new D("*");
|
|
}
|
|
if ("object" === typeof a && null !== a) {
|
|
if (a instanceof D) {
|
|
return a;
|
|
}
|
|
if (G.isQName(a)) {
|
|
return D.fromMultiname(a);
|
|
}
|
|
a = a instanceof Q || a instanceof U ? t(a) : a instanceof G ? a.name : a.toString();
|
|
} else {
|
|
if ("string" !== typeof a) {
|
|
throw new TypeError;
|
|
}
|
|
}
|
|
return "@" === a[0] ? l(a.substring(1)) : new D(a);
|
|
}
|
|
function w(a) {
|
|
return "object" === typeof a && a instanceof D ? !!(a._flags & 1) : !1;
|
|
}
|
|
function r(a, b, c) {
|
|
return a && 1 === a.length && a[0] instanceof z && ("string" === typeof b || void 0 === b) ? new D(a[0], b || "*", c) : b;
|
|
}
|
|
function h(a, b, c, h) {
|
|
var d = Object.create(Q.prototype);
|
|
void 0 === a && (a = 3);
|
|
void 0 === b && (b = "");
|
|
void 0 === c && (c = "");
|
|
d.init(a, b, c, h);
|
|
return d;
|
|
}
|
|
function x(a, b) {
|
|
var c = Object.create(U.prototype);
|
|
c._targetObject = a ? a : null;
|
|
c._targetProperty = b ? b : null;
|
|
c._children = [];
|
|
return c;
|
|
}
|
|
var y = b.Debug.assert, G = b.AVM2.ABC.Multiname, I = b.Debug.notImplemented, C = Object.prototype.asGetProperty, E = Object.prototype.asSetProperty, O = Object.prototype.asCallProperty, K = Object.prototype.asHasProperty, F = Object.prototype.asHasOwnProperty, J = Object.prototype.asGetEnumerableKeys, A = [], B = new function() {
|
|
function b(c, h) {
|
|
function e(a) {
|
|
return a.replace(/&([^;]+);/g, function(a, b) {
|
|
if ("#x" === b.substring(0, 2)) {
|
|
return String.fromCharCode(parseInt(b.substring(2), 16));
|
|
}
|
|
if ("#" === b.substring(0, 1)) {
|
|
return String.fromCharCode(parseInt(b.substring(1), 10));
|
|
}
|
|
switch(b) {
|
|
case "lt":
|
|
return "<";
|
|
case "gt":
|
|
return ">";
|
|
case "amp":
|
|
return "&";
|
|
case "quot":
|
|
return'"';
|
|
}
|
|
return a;
|
|
});
|
|
}
|
|
function l() {
|
|
for (var a = g.length - 1;0 <= a;--a) {
|
|
if ("preserve" === g[a].space) {
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
}
|
|
function n() {
|
|
for (var a = g.length - 1;0 <= a;--a) {
|
|
if ("xmlns" in g[a]) {
|
|
return g[a].xmlns;
|
|
}
|
|
}
|
|
return "";
|
|
}
|
|
function r(a) {
|
|
for (var b = g.length - 1;0 <= b;--b) {
|
|
if (a in g[b].lookup) {
|
|
return g[b].lookup[a];
|
|
}
|
|
}
|
|
}
|
|
function f(a, b) {
|
|
var c = a.indexOf(":");
|
|
if (0 <= c) {
|
|
var h = a.substring(0, c), d = r(h);
|
|
if (void 0 === d) {
|
|
throw "Unknown namespace: " + h;
|
|
}
|
|
c = a.substring(c + 1);
|
|
return{name:d + "::" + c, localName:c, prefix:h, namespace:d};
|
|
}
|
|
return b ? {name:a, localName:a, prefix:"", namespace:n()} : {name:a, localName:a, prefix:"", namespace:""};
|
|
}
|
|
function p(a, b) {
|
|
function c() {
|
|
for (;h < a.length && d(a, h);) {
|
|
++h;
|
|
}
|
|
}
|
|
for (var h = b, l, n = [];h < a.length && !d(a, h) && ">" !== a[h] && "/" !== a[h];) {
|
|
++h;
|
|
}
|
|
l = a.substring(b, h);
|
|
for (c();h < a.length && ">" !== a[h] && "/" !== a[h] && "?" !== a[h];) {
|
|
c();
|
|
for (var r = "", f = "";h < a.length && !d(a, h) && "=" !== a[h];) {
|
|
r += a[h], ++h;
|
|
}
|
|
c();
|
|
if ("=" !== a[h]) {
|
|
throw "'=' expected";
|
|
}
|
|
++h;
|
|
c();
|
|
f = a[h];
|
|
if ('"' !== f && "'" !== f) {
|
|
throw "Quote expected";
|
|
}
|
|
var x = a.indexOf(f, ++h);
|
|
if (0 > x) {
|
|
throw "Unexpected EOF[6]";
|
|
}
|
|
f = a.substring(h, x);
|
|
n.push({name:r, value:e(f)});
|
|
h = x + 1;
|
|
c();
|
|
}
|
|
return{name:l, attributes:n, parsed:h - b};
|
|
}
|
|
function q(a, b) {
|
|
for (var c = b, h;c < a.length && !d(a, c) && ">" !== a[c] && "/" !== a[c];) {
|
|
++c;
|
|
}
|
|
for (h = a.substring(b, c);c < a.length && d(a, c);) {
|
|
++c;
|
|
}
|
|
for (var e = c;c < a.length && ("?" !== a[c] || ">" != a[c + 1]);) {
|
|
++c;
|
|
}
|
|
return{name:h, value:a.substring(e, c), parsed:c - b};
|
|
}
|
|
for (var x = 0, g = [{namespaces:[], lookup:{xmlns:"http://www.w3.org/2000/xmlns/", xml:"http://www.w3.org/XML/1998/namespace"}, inScopes:Q.defaultNamespace ? [{uri:Q.defaultNamespace, prefix:""}] : [], space:"default", xmlns:Q.defaultNamespace || ""}];x < c.length;) {
|
|
var m = x;
|
|
if ("<" === c[x]) {
|
|
switch(++m, c[m]) {
|
|
case "/":
|
|
++m;
|
|
x = c.indexOf(">", m);
|
|
if (0 > x) {
|
|
throw "Unexpected EOF[1]";
|
|
}
|
|
m = f(c.substring(m, x), !0);
|
|
h.endElement(m);
|
|
g.pop();
|
|
m = x + 1;
|
|
break;
|
|
case "?":
|
|
++m;
|
|
x = q(c, m);
|
|
if ("?>" != c.substring(m + x.parsed, m + x.parsed + 2)) {
|
|
throw "Unexpected EOF[2]";
|
|
}
|
|
h.pi(x.name, x.value);
|
|
m += x.parsed + 2;
|
|
break;
|
|
case "!":
|
|
if ("--" === c.substring(m + 1, m + 3)) {
|
|
x = c.indexOf("--\x3e", m + 3);
|
|
if (0 > x) {
|
|
throw "Unexpected EOF[3]";
|
|
}
|
|
h.comment(c.substring(m + 3, x));
|
|
m = x + 3;
|
|
} else {
|
|
if ("[CDATA[" === c.substring(m + 1, m + 8)) {
|
|
x = c.indexOf("]]\x3e", m + 8);
|
|
if (0 > x) {
|
|
throw "Unexpected EOF[4]";
|
|
}
|
|
h.cdata(c.substring(m + 8, x));
|
|
m = x + 3;
|
|
} else {
|
|
if ("DOCTYPE" === c.substring(m + 1, m + 8)) {
|
|
var w = c.indexOf("[", m + 8), u = !1, x = c.indexOf(">", m + 8);
|
|
if (0 > x) {
|
|
throw "Unexpected EOF[5]";
|
|
}
|
|
if (0 < w && x > w) {
|
|
x = c.indexOf("]>", m + 8);
|
|
if (0 > x) {
|
|
throw "Unexpected EOF[7]";
|
|
}
|
|
u = !0;
|
|
}
|
|
h.doctype(c.substring(m + 8, x + (u ? 1 : 0)));
|
|
m = x + (u ? 2 : 1);
|
|
} else {
|
|
throw "Unknown !tag";
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
w = p(c, m);
|
|
u = !1;
|
|
if ("/>" === c.substring(m + w.parsed, m + w.parsed + 2)) {
|
|
u = !0;
|
|
} else {
|
|
if (">" !== c.substring(m + w.parsed, m + w.parsed + 1)) {
|
|
throw "Unexpected EOF[2]";
|
|
}
|
|
}
|
|
for (var k = {namespaces:[], lookup:Object.create(null)}, y = w.attributes, x = 0;x < y.length;++x) {
|
|
var s = y[x], G = s.name;
|
|
if ("xmlns:" === G.substring(0, 6)) {
|
|
G = G.substring(6), s = s.value, r(G) !== s && (k.lookup[G] = a(s), k.namespaces.push({uri:s, prefix:G})), delete y[x];
|
|
} else {
|
|
if ("xmlns" === G) {
|
|
s = s.value, n() !== s && (k.xmlns = a(s), k.namespaces.push({uri:s, prefix:""})), delete y[x];
|
|
} else {
|
|
if ("xml:" === G.substring(0, 4)) {
|
|
var I = G.substring(4);
|
|
if ("space" !== I && "lang" !== I && "base" !== I) {
|
|
throw "Invalid xml attribute: " + G;
|
|
}
|
|
k[I] = a(s.value);
|
|
} else {
|
|
if ("xml" === G.substring(0, 3)) {
|
|
throw "Invalid xml attribute";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var t = [];
|
|
k.namespaces.forEach(function(a) {
|
|
a.prefix && k.lookup[a.prefix] !== a.uri || t.push(a);
|
|
});
|
|
g[g.length - 1].inScopes.forEach(function(a) {
|
|
(!a.prefix || a.prefix in k.lookup) && (a.prefix || "xmlns" in k) || t.push(a);
|
|
});
|
|
k.inScopes = t;
|
|
g.push(k);
|
|
G = [];
|
|
for (x = 0;x < y.length;++x) {
|
|
(s = y[x]) && G.push({name:f(s.name, !1), value:s.value});
|
|
}
|
|
h.beginElement(f(w.name, !0), G, t, u);
|
|
m += w.parsed + (u ? 2 : 1);
|
|
u && g.pop();
|
|
}
|
|
} else {
|
|
w = !0;
|
|
do {
|
|
if (w = w && d(c, m), ++m >= c.length) {
|
|
break;
|
|
}
|
|
} while ("<" !== c[m]);
|
|
h.text(e(c.substring(x, m)), w || l());
|
|
}
|
|
x = m;
|
|
}
|
|
}
|
|
this.parseFromString = function(a, c) {
|
|
var d = new h(1, "", "", ""), e = [];
|
|
b(a, {beginElement:function(a, b, c, l) {
|
|
var n = d;
|
|
e.push(n);
|
|
d = new h(1, a.namespace, a.localName, a.prefix);
|
|
for (a = 0;a < b.length;++a) {
|
|
var r = b[a], f = new h(2, r.name.namespace, r.name.localName, r.name.prefix);
|
|
f._value = r.value;
|
|
d._attributes.push(f);
|
|
}
|
|
for (a = 0;a < c.length;++a) {
|
|
b = c[a], b = Namespace.createNamespace(b.uri, b.prefix), d._inScopeNamespaces.push(b);
|
|
}
|
|
n.insert(n.length(), d);
|
|
l && (d = e.pop());
|
|
}, endElement:function(a) {
|
|
d = e.pop();
|
|
}, text:function(a, b) {
|
|
if (!b || !Q.ignoreWhitespace) {
|
|
var c = new h(3, "", "", void 0);
|
|
c._value = a;
|
|
d.insert(d.length(), c);
|
|
}
|
|
}, cdata:function(a) {
|
|
var b = new h(3, "", "", void 0);
|
|
b._value = a;
|
|
d.insert(d.length(), b);
|
|
}, comment:function(a) {
|
|
if (!Q.ignoreComments) {
|
|
var b = new h(4, "", "", void 0);
|
|
b._value = a;
|
|
d.insert(d.length(), b);
|
|
}
|
|
}, pi:function(a, b) {
|
|
if (!Q.ignoreProcessingInstructions) {
|
|
var c = new h(5, "", a, void 0);
|
|
c._value = b;
|
|
d.insert(d.length(), c);
|
|
}
|
|
}, doctype:function(a) {
|
|
}});
|
|
return d;
|
|
};
|
|
}, z = function(a) {
|
|
function c(a, h) {
|
|
var d = "", e = "";
|
|
if (0 !== arguments.length) {
|
|
if (1 === arguments.length) {
|
|
d = a, b.isObject(d) && d instanceof c ? (e = d.prefix, d = d.uri) : b.isObject(d) && d instanceof D && null !== d.uri ? d = d.uri : (d = t(d), e = "" === d ? "" : void 0);
|
|
} else {
|
|
if (d = h, d = b.isObject(d) && d instanceof D && null !== d.uri ? d.uri : t(d), "" === d) {
|
|
if (void 0 === a || "" === t(a)) {
|
|
e = "";
|
|
} else {
|
|
throw new TypeError;
|
|
}
|
|
} else {
|
|
if (void 0 === a) {
|
|
e = void 0;
|
|
} else {
|
|
a: {
|
|
try {
|
|
new D(a);
|
|
} catch (l) {
|
|
e = !1;
|
|
break a;
|
|
}
|
|
e = !0;
|
|
}
|
|
e = !1 === e ? void 0 : t(a);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this._ns = Namespace.createNamespace(d, e);
|
|
}
|
|
__extends(c, a);
|
|
c.fromNamespace = function(a) {
|
|
return new c._namespaceConstructor(a);
|
|
};
|
|
Object.defineProperty(c.prototype, "prefix", {get:function() {
|
|
return this._ns.prefix;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "uri", {get:function() {
|
|
return this._ns.uri;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.staticNatives = null;
|
|
c.instanceNatives = null;
|
|
c.instanceConstructor = c;
|
|
c._namespaceConstructor = function(a) {
|
|
this._ns = a;
|
|
};
|
|
c._namespaceConstructor.prototype = c.prototype;
|
|
c._ = void 0;
|
|
c.callableConstructor = function(a, h) {
|
|
if (1 === arguments.length && b.isObject(a) && a instanceof c) {
|
|
return a;
|
|
}
|
|
switch(arguments.length) {
|
|
case 0:
|
|
return new c;
|
|
case 1:
|
|
return new c(a);
|
|
default:
|
|
return new c(a, h);
|
|
}
|
|
};
|
|
return c;
|
|
}(g.ASObject);
|
|
g.ASNamespace = z;
|
|
var P;
|
|
(function(a) {
|
|
a[a.ATTR_NAME = 1] = "ATTR_NAME";
|
|
a[a.ELEM_NAME = 2] = "ELEM_NAME";
|
|
a[a.ANY_NAME = 4] = "ANY_NAME";
|
|
a[a.ANY_NAMESPACE = 8] = "ANY_NAMESPACE";
|
|
})(P || (P = {}));
|
|
var D = function(a) {
|
|
function c(a, h, d) {
|
|
var e, l;
|
|
0 === arguments.length ? e = "" : 1 === arguments.length ? e = a : (l = a, e = h);
|
|
if (b.isObject(e) && e instanceof c) {
|
|
if (2 > arguments.length) {
|
|
return e;
|
|
}
|
|
e = e.localName;
|
|
}
|
|
e = void 0 === e || 0 === arguments.length ? "" : t(e);
|
|
if (void 0 === l || 2 > arguments.length) {
|
|
l = "*" === e ? null : new z("", Q.defaultNamespace);
|
|
}
|
|
var n = e;
|
|
null !== l && (l = l instanceof z ? l : new z(l));
|
|
var r = d ? 1 : 2;
|
|
"*" === e && (r |= 4);
|
|
null === l && (r |= 8);
|
|
this._mn = new G([l ? l._ns : null], n);
|
|
this._flags = r;
|
|
}
|
|
__extends(c, a);
|
|
c.fromMultiname = function(a) {
|
|
var b = Object.create(c.prototype);
|
|
b._mn = a;
|
|
var h = 0, h = a.isAttribute() ? h | 1 : h | 2;
|
|
a.isAnyName() && (h |= 4);
|
|
a.isAnyNamespace() && (h |= 8);
|
|
b._flags = h;
|
|
return b;
|
|
};
|
|
Object.defineProperty(c.prototype, "localName", {get:function() {
|
|
return this._mn.name;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "uri", {get:function() {
|
|
return this._mn.namespaces[0] ? this._mn.namespaces[0].uri : null;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "prefix", {get:function() {
|
|
return this._mn.namespaces[0].prefix;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.getNamespace = function(a) {
|
|
if (null === this.uri) {
|
|
throw "TypeError in QName.prototype.getNamespace()";
|
|
}
|
|
a || (a = []);
|
|
for (var b, c = 0;c < a.length;c++) {
|
|
this.uri === a[c].uri && (b = a[c]);
|
|
}
|
|
b || (b = new z(this.prefix, this.uri));
|
|
return b;
|
|
};
|
|
c.instanceConstructor = c;
|
|
c.callableConstructor = function(a, h) {
|
|
if (1 === arguments.length && b.isObject(a) && a instanceof c) {
|
|
return a;
|
|
}
|
|
switch(arguments.length) {
|
|
case 0:
|
|
return new c;
|
|
case 1:
|
|
return new c(a);
|
|
default:
|
|
return new c(a, h);
|
|
}
|
|
};
|
|
return c;
|
|
}(g.ASNative);
|
|
g.ASQName = D;
|
|
var L;
|
|
(function(a) {
|
|
a[a.FLAG_IGNORE_COMMENTS = 1] = "FLAG_IGNORE_COMMENTS";
|
|
a[a.FLAG_IGNORE_PROCESSING_INSTRUCTIONS = 2] = "FLAG_IGNORE_PROCESSING_INSTRUCTIONS";
|
|
a[a.FLAG_IGNORE_WHITESPACE = 4] = "FLAG_IGNORE_WHITESPACE";
|
|
a[a.FLAG_PRETTY_PRINTING = 8] = "FLAG_PRETTY_PRINTING";
|
|
a[a.ALL = a.FLAG_IGNORE_COMMENTS | a.FLAG_IGNORE_PROCESSING_INSTRUCTIONS | a.FLAG_IGNORE_WHITESPACE | a.FLAG_PRETTY_PRINTING] = "ALL";
|
|
})(L || (L = {}));
|
|
var M;
|
|
(function(a) {
|
|
a[a.Unknown = 0] = "Unknown";
|
|
a[a.Element = 1] = "Element";
|
|
a[a.Attribute = 2] = "Attribute";
|
|
a[a.Text = 3] = "Text";
|
|
a[a.Comment = 4] = "Comment";
|
|
a[a.ProcessingInstruction = 5] = "ProcessingInstruction";
|
|
})(M || (M = {}));
|
|
var V = [null, "element", "attribute", "text", "comment", "processing-instruction"], Q = function(a) {
|
|
function c(a) {
|
|
"undefined" === typeof a && (a = void 0);
|
|
if (!(this instanceof c)) {
|
|
return a instanceof c ? a : new c(a);
|
|
}
|
|
if (null === a || void 0 === a) {
|
|
a = "";
|
|
}
|
|
var b = e(a);
|
|
f(a) && (b = b._deepCopy());
|
|
return b;
|
|
}
|
|
__extends(c, a);
|
|
c.prototype.init = function(a, b, c, h) {
|
|
b = b || h ? new z(h, b) : void 0;
|
|
this._name = new D(b, c, 2 === a);
|
|
this._kind = a;
|
|
this._parent = null;
|
|
switch(a) {
|
|
case 1:
|
|
this._inScopeNamespaces = [];
|
|
this._attributes = [];
|
|
this._children = [];
|
|
break;
|
|
case 4:
|
|
;
|
|
case 5:
|
|
;
|
|
case 2:
|
|
;
|
|
case 3:
|
|
this._value = "";
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.length = function() {
|
|
return this._children ? this._children.length : 0;
|
|
};
|
|
c.prototype._deepCopy = function() {
|
|
var a = this._kind, b = new c;
|
|
b._kind = a;
|
|
b._name = this._name;
|
|
switch(a) {
|
|
case 1:
|
|
b._inScopeNamespaces = [];
|
|
0 < this._inScopeNamespaces.length && this._inScopeNamespaces.forEach(function(a) {
|
|
b._inScopeNamespaces.push(new z(a.prefix, a.uri));
|
|
});
|
|
b._attributes = this._attributes.map(function(a) {
|
|
a = a._deepCopy();
|
|
a._parent = b;
|
|
return a;
|
|
});
|
|
b._children = this._children.map(function(a) {
|
|
a = a._deepCopy();
|
|
a._parent = b;
|
|
return a;
|
|
});
|
|
break;
|
|
case 4:
|
|
;
|
|
case 5:
|
|
;
|
|
case 2:
|
|
;
|
|
case 3:
|
|
b._value = this._value;
|
|
}
|
|
return b;
|
|
};
|
|
c.prototype.resolveValue = function() {
|
|
return this;
|
|
};
|
|
c.prototype._addInScopeNamespaces = function(a) {
|
|
this._inScopeNamespaces.some(function(b) {
|
|
return b.uri === a.uri && b.prefix === a.prefix;
|
|
}) || this._inScopeNamespaces.push(a);
|
|
};
|
|
Object.defineProperty(c, "ignoreComments", {get:function() {
|
|
return!!(c._flags & 1);
|
|
}, set:function(a) {
|
|
c._flags = a ? c._flags | 1 : c._flags & -2;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "ignoreProcessingInstructions", {get:function() {
|
|
return!!(c._flags & 2);
|
|
}, set:function(a) {
|
|
c._flags = a ? c._flags | 2 : c._flags & -3;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "ignoreWhitespace", {get:function() {
|
|
return!!(c._flags & 4);
|
|
}, set:function(a) {
|
|
c._flags = a ? c._flags | 4 : c._flags & -5;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "prettyPrinting", {get:function() {
|
|
return!!(c._flags & 8);
|
|
}, set:function(a) {
|
|
c._flags = a ? c._flags | 8 : c._flags & -9;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "prettyIndent", {get:function() {
|
|
return c._prettyIndent;
|
|
}, set:function(a) {
|
|
c._prettyIndent = a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.toString = function() {
|
|
return t(this);
|
|
};
|
|
c.prototype.native_hasOwnProperty = function(a) {
|
|
"undefined" === typeof a && (a = void 0);
|
|
return this.hasProperty(a, w(a), !1) ? !0 : F.call(this, String(a));
|
|
};
|
|
c.prototype.native_propertyIsEnumerable = function(a) {
|
|
"undefined" === typeof a && (a = void 0);
|
|
return "0" === String(a);
|
|
};
|
|
c.prototype.addNamespace = function(a) {
|
|
this._addInScopeNamespaces(new z(a));
|
|
return this;
|
|
};
|
|
c.prototype.appendChild = function(a) {
|
|
if (a._parent) {
|
|
var b = a._parent._children.indexOf(a);
|
|
y(0 <= b);
|
|
a._parent._children.splice(b, 1);
|
|
}
|
|
this._children.push(a);
|
|
a._parent = this;
|
|
return this;
|
|
};
|
|
c.prototype.attribute = function(a) {
|
|
return this.getProperty(a, !0, !1);
|
|
};
|
|
c.prototype.attributes = function() {
|
|
var a = new x;
|
|
Array.prototype.push.apply(a._children, this._attributes);
|
|
return a;
|
|
};
|
|
c.prototype.child = function(a) {
|
|
return this.getProperty(a, w(a), !1);
|
|
};
|
|
c.prototype.childIndex = function() {
|
|
return this._parent && 2 !== this._kind ? this._parent._children.indexOf(this) : -1;
|
|
};
|
|
c.prototype.children = function() {
|
|
var a = new x(this);
|
|
Array.prototype.push.apply(a._children, this._children);
|
|
return a;
|
|
};
|
|
c.prototype.contains = function(a) {
|
|
return this === a;
|
|
};
|
|
c.prototype.copy = function() {
|
|
return this._deepCopy();
|
|
};
|
|
c.prototype.elements = function(a) {
|
|
"undefined" === typeof a && (a = "*");
|
|
return this.getProperty(a, !1, !1);
|
|
};
|
|
c.prototype.hasComplexContent = function() {
|
|
return 2 === this._kind || 4 === this._kind || 5 === this._kind || 3 === this._kind ? !1 : this._children.some(function(a) {
|
|
return 1 === a._kind;
|
|
});
|
|
};
|
|
c.prototype.hasSimpleContent = function() {
|
|
return 4 === this._kind || 5 === this._kind ? !1 : this._children || 0 !== this._children.length ? this._children.every(function(a) {
|
|
return 1 !== a._kind;
|
|
}) : !0;
|
|
};
|
|
c.prototype.inScopeNamespaces = function() {
|
|
I("public.XML::inScopeNamespaces");
|
|
};
|
|
c.prototype.insertChildAfter = function(a, b) {
|
|
I("public.XML::insertChildAfter");
|
|
};
|
|
c.prototype.insertChildBefore = function(a, b) {
|
|
I("public.XML::insertChildBefore");
|
|
};
|
|
c.prototype.localName = function() {
|
|
return this._name.localName;
|
|
};
|
|
c.prototype.name = function() {
|
|
return this._name;
|
|
};
|
|
c.prototype._namespace = function(a, b) {
|
|
I("public.XML::private _namespace");
|
|
};
|
|
c.prototype.namespaceDeclarations = function() {
|
|
I("public.XML::namespaceDeclarations");
|
|
};
|
|
c.prototype.nodeKind = function() {
|
|
return V[this._kind];
|
|
};
|
|
c.prototype.normalize = function() {
|
|
I("public.XML::normalize");
|
|
};
|
|
c.prototype.parent = function() {
|
|
return this._parent;
|
|
};
|
|
c.prototype.processingInstructions = function(a) {
|
|
I("public.XML::processingInstructions");
|
|
};
|
|
c.prototype.prependChild = function(a) {
|
|
I("public.XML::prependChild");
|
|
};
|
|
c.prototype.removeNamespace = function(a) {
|
|
I("public.XML::removeNamespace");
|
|
};
|
|
c.prototype.setChildren = function(a) {
|
|
I("public.XML::setChildren");
|
|
};
|
|
c.prototype.setLocalName = function(a) {
|
|
I("public.XML::setLocalName");
|
|
};
|
|
c.prototype.setName = function(a) {
|
|
I("public.XML::setName");
|
|
};
|
|
c.prototype.setNamespace = function(a) {
|
|
I("public.XML::setNamespace");
|
|
};
|
|
c.prototype.toXMLString = function() {
|
|
return p(this);
|
|
};
|
|
c.prototype.notification = function() {
|
|
I("public.XML::notification");
|
|
};
|
|
c.prototype.setNotification = function(a) {
|
|
I("public.XML::setNotification");
|
|
};
|
|
c.isTraitsOrDynamicPrototype = function(a) {
|
|
return a === c.traitsPrototype || a === c.dynamicPrototype;
|
|
};
|
|
c.prototype.asGetEnumerableKeys = function() {
|
|
if (c.isTraitsOrDynamicPrototype(this)) {
|
|
return J.call(this);
|
|
}
|
|
var a = [];
|
|
this._children.forEach(function(b, c) {
|
|
a.push(b.name);
|
|
});
|
|
return a;
|
|
};
|
|
c.prototype.setProperty = function(a, b, c) {
|
|
var d, e;
|
|
if (a === a >>> 0) {
|
|
throw "TypeError in XML.prototype.setProperty(): invalid property name " + a;
|
|
}
|
|
if (3 !== this._kind && 4 !== this._kind && 5 !== this._kind && 2 !== this._kind) {
|
|
if (d = c && f(c) && 3 !== c._kind && 2 !== c._kind ? c._deepCopy() : t(c), e = u(a), b) {
|
|
this._attributes && (this._attributes.forEach(function(a, b, c) {
|
|
a.name === e.localName && delete c[b];
|
|
}), d = new h(2, e.uri, e.localName), d._value = c, d._parent = this, this._attributes.push(d));
|
|
} else {
|
|
c = void 0;
|
|
a = !f(d) && "*" !== e.localName;
|
|
b = e._flags & 4;
|
|
for (var l = e._flags & 8, n = this.length() - 1;0 <= n;n--) {
|
|
(b || 1 === this._children[n]._kind && this._children[n]._name.localName === e.localName) && (l || 1 === this._children[n]._kind && this._children[n]._name.uri === e.uri) && (void 0 !== c && this.deleteByIndex(String(c)), c = n);
|
|
}
|
|
void 0 === c && (c = this.length(), a && (l = null === e.uri ? new D(new z("", Q.defaultNamespace), e) : new D(e), b = new h(1, l.uri, l.localName, l.prefix), b._parent = this, l = l.getNamespace(), this.replace(String(c), b), b.addInScopeNamespace(l)));
|
|
a ? (this._children[c]._children = [], d = t(d), "" !== d && this._children[c].replace("0", d)) : this.replace(String(c), d);
|
|
}
|
|
}
|
|
};
|
|
c.prototype.asSetProperty = function(a, b, h, d) {
|
|
if (c.isTraitsOrDynamicPrototype(this)) {
|
|
return E.call(this, a, b, h, d);
|
|
}
|
|
h &= G.ATTRIBUTE;
|
|
this.setProperty(r(a, b, h), h, d);
|
|
};
|
|
c.prototype.getProperty = function(a, c, h) {
|
|
if (h) {
|
|
return c = G.isQName(a) ? a : this.resolveMultinameProperty(a.namespaces, a.name, a.flags), this[G.getQualifiedName(c)];
|
|
}
|
|
if (!G.isQName(a) && b.isNumeric(a)) {
|
|
return 0 === Number(a) ? this : null;
|
|
}
|
|
var d = u(a), e = new x(this, d);
|
|
a = d._flags;
|
|
var l = a & 4, n = a & 8;
|
|
c ? this._attributes && this._attributes.forEach(function(a, b) {
|
|
!l && a._name.localName !== d.localName || !n && a._name.uri !== d.uri || e.appendChild(a);
|
|
}) : this._children.forEach(function(a, b) {
|
|
(l || 1 === a._kind && a._name.localName === d.localName) && (n || 1 === a._kind && a._name.uri === d.uri) && e.appendChild(a);
|
|
});
|
|
return e;
|
|
};
|
|
c.prototype.asGetNumericProperty = function(a) {
|
|
return this.asGetProperty(null, a, 0);
|
|
};
|
|
c.prototype.asSetNumericProperty = function(a, b) {
|
|
this.asSetProperty(null, a, 0, b);
|
|
};
|
|
c.prototype.asGetProperty = function(a, b, h) {
|
|
if (c.isTraitsOrDynamicPrototype(this)) {
|
|
return C.call(this, a, b, h);
|
|
}
|
|
h &= G.ATTRIBUTE;
|
|
return this.getProperty(r(a, b, h), h, !1);
|
|
};
|
|
c.prototype.hasProperty = function(a, c, h) {
|
|
if (h) {
|
|
return c = G.isQName(a) ? a : this.resolveMultinameProperty(a.namespaces, a.name, a.flags), !!this[G.getQualifiedName(c)];
|
|
}
|
|
new x;
|
|
if (b.isIndex(a)) {
|
|
return 0 === Number(a) ? !0 : !1;
|
|
}
|
|
var d = u(a);
|
|
a = d._flags;
|
|
var e = a & 4, l = a & 8;
|
|
if (c) {
|
|
if (this._attributes) {
|
|
return this._attributes.some(function(a, b) {
|
|
return(e || a._name.localName === d.localName) && (l || a._name.uri === d.uri);
|
|
});
|
|
}
|
|
} else {
|
|
if (this._children.some(function(a, b) {
|
|
return(e || 1 === a._kind && a._name.localName === d.localName) && (l || 1 === a._kind && a._name.uri === d.uri);
|
|
})) {
|
|
return!0;
|
|
}
|
|
}
|
|
};
|
|
c.prototype.asHasProperty = function(a, b, h) {
|
|
if (c.isTraitsOrDynamicPrototype(this)) {
|
|
return K.call(this, a, b, h);
|
|
}
|
|
var d = h & G.ATTRIBUTE;
|
|
b = r(a, b, d);
|
|
if (this.hasProperty(b, d, !1)) {
|
|
return!0;
|
|
}
|
|
a = G.isQName(b) ? b : this.resolveMultinameProperty(a, b, h);
|
|
return!!this[G.getQualifiedName(a)];
|
|
};
|
|
c.prototype.asHasPropertyInternal = function(a, b, c) {
|
|
return this.asHasProperty(a, b, c);
|
|
};
|
|
c.prototype.asCallProperty = function(a, b, h, d, e) {
|
|
if (c.isTraitsOrDynamicPrototype(this) || d) {
|
|
return O.call(this, a, b, h, d, e);
|
|
}
|
|
var l;
|
|
l = this.resolveMultinameProperty(a, b, h);
|
|
if (this.asGetNumericProperty && G.isNumeric(l)) {
|
|
l = this.asGetNumericProperty(l);
|
|
} else {
|
|
var n = this.asOpenMethods;
|
|
l = n && n[l] || this[l];
|
|
}
|
|
if (l) {
|
|
return O.call(this, a, b, h, d, e);
|
|
}
|
|
if (this.hasSimpleContent()) {
|
|
return Object(t(this)).asCallProperty(a, b, h, d, e);
|
|
}
|
|
throw new TypeError;
|
|
};
|
|
c.prototype._delete = function(a, b) {
|
|
I("XML.[[Delete]]");
|
|
};
|
|
c.prototype.deleteByIndex = function(a) {
|
|
var b = a >>> 0;
|
|
if (String(b) !== String(a)) {
|
|
throw "TypeError in XML.prototype.deleteByIndex(): invalid index " + a;
|
|
}
|
|
if (a < this.length() && this.children[a]) {
|
|
this.children[a]._parent = null;
|
|
delete this.children[a];
|
|
for (a = b + 1;a < this.length();a++) {
|
|
this.children[a - 1] = this.children[a];
|
|
}
|
|
this.children.length -= 1;
|
|
}
|
|
};
|
|
c.prototype.insert = function(a, b) {
|
|
var c, h;
|
|
if (3 !== this._kind && 4 !== this._kind && 5 !== this._kind && 2 !== this._kind) {
|
|
c = a >>> 0;
|
|
if (String(a) !== String(c)) {
|
|
throw "TypeError in XML.prototype.insert(): invalid property name " + a;
|
|
}
|
|
if (1 === this._kind) {
|
|
for (h = this;h;) {
|
|
if (h === b) {
|
|
throw "Error in XML.prototype.insert()";
|
|
}
|
|
h = h._parent;
|
|
}
|
|
}
|
|
if (this instanceof U) {
|
|
if (h = this.length(), 0 === h) {
|
|
return;
|
|
}
|
|
} else {
|
|
h = 1;
|
|
}
|
|
for (var d = this.length() - 1;d >= c;d--) {
|
|
this._children[d + h] = this._children[d];
|
|
}
|
|
if (this instanceof U) {
|
|
for (h = b.length(), d = 0;d < h;d++) {
|
|
b._children[d]._parent = this, this[c + d] = b[d];
|
|
}
|
|
} else {
|
|
b._parent = this, this._children[c] = b;
|
|
}
|
|
}
|
|
};
|
|
c.prototype.replace = function(a, b) {
|
|
var c, d = this;
|
|
if (3 === d._kind || 4 === d._kind || 5 === d._kind || 2 === d._kind) {
|
|
return d;
|
|
}
|
|
if (1 === b._kind) {
|
|
for (c = d;c;) {
|
|
if (c === b) {
|
|
throw "Error in XML.prototype.replace()";
|
|
}
|
|
c = c._parent;
|
|
}
|
|
}
|
|
c = a >>> 0;
|
|
if (String(a) === String(c)) {
|
|
c >= d.length() && (a = String(d.length())), d._children[a] && (d._children[a]._parent = null);
|
|
} else {
|
|
c = this.getProperty(a, !1, !1);
|
|
if (0 === c.length()) {
|
|
return d;
|
|
}
|
|
c._children.forEach(function(b, c) {
|
|
var h = d._children.indexOf(b);
|
|
b._parent = null;
|
|
0 === c ? (a = String(h), d._children.splice(h, 1, void 0)) : d._children.splice(h, 1);
|
|
});
|
|
}
|
|
if (1 === b._kind || 3 === b._kind || 4 === b._kind || 5 === b._kind) {
|
|
b._parent = d, d._children[a] = b;
|
|
} else {
|
|
c = t(b);
|
|
var e = new h;
|
|
e._parent = d;
|
|
e._value = c;
|
|
d._children[a] = e;
|
|
}
|
|
return d;
|
|
};
|
|
c.prototype.addInScopeNamespace = function(a) {
|
|
var b = this;
|
|
if (3 !== b._kind && 4 !== b._kind && 5 !== b._kind && 2 !== b._kind && void 0 !== a.prefix && ("" !== a.prefix || "" !== b._name.uri)) {
|
|
var c = null;
|
|
b._inScopeNamespaces.forEach(function(b, h) {
|
|
b.prefix === a.prefix && (c = b);
|
|
});
|
|
null !== c && c.uri !== a.uri && b._inScopeNamespaces.forEach(function(h, d) {
|
|
h.prefix === c.prefix && (b._inScopeNamespaces[d] = a);
|
|
});
|
|
b._name.prefix === a.prefix && (b._name.prefix = void 0);
|
|
b._attributes.forEach(function(b, c) {
|
|
b._name.prefix === a.prefix && (b._name.prefix = void 0);
|
|
});
|
|
}
|
|
};
|
|
c.prototype.descendants = function(a) {
|
|
"undefined" === typeof a && (a = "*");
|
|
a = u(a);
|
|
var b = a._flags, c = new x;
|
|
if (1 !== this._kind) {
|
|
return c;
|
|
}
|
|
var h = b & 4;
|
|
b & 1 ? this._attributes.forEach(function(b, d) {
|
|
(h || a.localName === b._name.localName) && c.appendChild(b);
|
|
}) : this._children.forEach(function(b, d) {
|
|
(h || a.localName === b._name.localName) && c.appendChild(b);
|
|
});
|
|
this._children.forEach(function(b, h) {
|
|
c.appendChild(b.descendants(a));
|
|
});
|
|
return c;
|
|
};
|
|
c.prototype.comments = function() {
|
|
var a = new x(this, null);
|
|
this._children.forEach(function(b, c) {
|
|
4 === b._kind && a.appendChild(b);
|
|
});
|
|
return a;
|
|
};
|
|
c.prototype.text = function() {
|
|
var a = new x(this, null);
|
|
this._children.forEach(function(b, c) {
|
|
3 === b._kind && a.appendChild(b);
|
|
});
|
|
return a;
|
|
};
|
|
c.instanceConstructor = c;
|
|
c.callableConstructor = function(a) {
|
|
"undefined" === typeof a && (a = void 0);
|
|
if (null === a || void 0 === a) {
|
|
a = "";
|
|
}
|
|
return e(a);
|
|
};
|
|
c.defaultNamespace = "";
|
|
c._flags = L.ALL;
|
|
c._prettyIndent = 2;
|
|
return c;
|
|
}(g.ASNative);
|
|
g.ASXML = Q;
|
|
var U = function(a) {
|
|
function c(a) {
|
|
"undefined" === typeof a && (a = void 0);
|
|
if (null === a || void 0 === a) {
|
|
a = "";
|
|
}
|
|
var b = q(a);
|
|
f(a) && (b = b._deepCopy());
|
|
return b;
|
|
}
|
|
__extends(c, a);
|
|
c.prototype.toString = function() {
|
|
return t(this);
|
|
};
|
|
c.prototype._deepCopy = function() {
|
|
for (var a = new x, b = 0;b < this.length();b++) {
|
|
a.appendChild(this._children[b]._deepCopy());
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype.hasOwnProperty = function(a) {
|
|
I("public.XMLList::hasOwnProperty");
|
|
};
|
|
c.prototype.propertyIsEnumerable = function(a) {
|
|
I("public.XMLList::propertyIsEnumerable");
|
|
};
|
|
c.prototype.attribute = function(a) {
|
|
return this.getProperty(a, !0, !1);
|
|
};
|
|
c.prototype.attributes = function() {
|
|
return this.getProperty("*", !0, !1);
|
|
};
|
|
c.prototype.child = function(a) {
|
|
return this.getProperty(a, !1, !1);
|
|
};
|
|
c.prototype.children = function() {
|
|
return this.getProperty("*", !1, !1);
|
|
};
|
|
c.prototype.comments = function() {
|
|
var a = new x(this);
|
|
this._children.forEach(function(b) {
|
|
1 === b._kind && (b = b.comments(), Array.prototype.push.apply(a._children, b._children));
|
|
});
|
|
return a;
|
|
};
|
|
c.prototype.contains = function(a) {
|
|
return 0 <= this._children.indexOf(a);
|
|
};
|
|
c.prototype.copy = function() {
|
|
return this._deepCopy();
|
|
};
|
|
c.prototype.elements = function(a) {
|
|
"undefined" === typeof a && (a = "*");
|
|
var b = new x(this, new D(a));
|
|
this._children.forEach(function(c) {
|
|
1 === c._kind && (c = c.elements(a), Array.prototype.push.apply(b._children, c._children));
|
|
});
|
|
return b;
|
|
};
|
|
c.prototype.hasComplexContent = function() {
|
|
switch(this.length()) {
|
|
case 0:
|
|
return!1;
|
|
case 1:
|
|
return this._children[0].hasComplexContent();
|
|
default:
|
|
return this._children.some(function(a) {
|
|
return 1 === a._kind;
|
|
});
|
|
}
|
|
};
|
|
c.prototype.hasSimpleContent = function() {
|
|
switch(this.length()) {
|
|
case 0:
|
|
return!0;
|
|
case 1:
|
|
return this._children[0].hasSimpleContent();
|
|
default:
|
|
return this._children.every(function(a) {
|
|
return 1 !== a._kind;
|
|
});
|
|
}
|
|
};
|
|
c.prototype.length = function() {
|
|
return this._children.length;
|
|
};
|
|
c.prototype.name = function() {
|
|
return this._children[0].name();
|
|
};
|
|
c.prototype.normalize = function() {
|
|
I("public.XMLList::normalize");
|
|
};
|
|
c.prototype.parent = function() {
|
|
if (0 !== this.length()) {
|
|
for (var a = this._children[0]._parent, b = 1;b < this.length();b++) {
|
|
if (a !== this._children[b]._parent) {
|
|
return;
|
|
}
|
|
}
|
|
return a;
|
|
}
|
|
};
|
|
c.prototype.processingInstructions = function(a) {
|
|
I("public.XMLList::processingInstructions");
|
|
};
|
|
c.prototype.text = function() {
|
|
var a = new x(this);
|
|
this._children.forEach(function(b, c) {
|
|
if (1 === b._kind) {
|
|
var h = b.text();
|
|
0 < h.length() && a.appendChild(h);
|
|
}
|
|
});
|
|
return a;
|
|
};
|
|
c.prototype.toXMLString = function() {
|
|
return p(this);
|
|
};
|
|
c.prototype.addNamespace = function(a) {
|
|
I("public.XMLList::addNamespace");
|
|
};
|
|
c.prototype.appendChild = function(a) {
|
|
if (a instanceof c) {
|
|
return this._children.push.apply(this._children, a._children), a;
|
|
}
|
|
this._children.push(a);
|
|
return a;
|
|
};
|
|
c.prototype.childIndex = function() {
|
|
I("public.XMLList::childIndex");
|
|
};
|
|
c.prototype.inScopeNamespaces = function() {
|
|
I("public.XMLList::inScopeNamespaces");
|
|
};
|
|
c.prototype.insertChildAfter = function(a, b) {
|
|
I("public.XMLList::insertChildAfter");
|
|
};
|
|
c.prototype.insertChildBefore = function(a, b) {
|
|
I("public.XMLList::insertChildBefore");
|
|
};
|
|
c.prototype.nodeKind = function() {
|
|
I("public.XMLList::nodeKind");
|
|
};
|
|
c.prototype._namespace = function(a, b) {
|
|
I("public.XMLList::private _namespace");
|
|
};
|
|
c.prototype.localName = function() {
|
|
I("public.XMLList::localName");
|
|
};
|
|
c.prototype.namespaceDeclarations = function() {
|
|
I("public.XMLList::namespaceDeclarations");
|
|
};
|
|
c.prototype.prependChild = function(a) {
|
|
I("public.XMLList::prependChild");
|
|
};
|
|
c.prototype.removeNamespace = function(a) {
|
|
I("public.XMLList::removeNamespace");
|
|
};
|
|
c.prototype.replace = function(a, b) {
|
|
I("public.XMLList::replace");
|
|
};
|
|
c.prototype.setChildren = function(a) {
|
|
I("public.XMLList::setChildren");
|
|
};
|
|
c.prototype.setLocalName = function(a) {
|
|
I("public.XMLList::setLocalName");
|
|
};
|
|
c.prototype.setName = function(a) {
|
|
I("public.XMLList::setName");
|
|
};
|
|
c.prototype.setNamespace = function(a) {
|
|
I("public.XMLList::setNamespace");
|
|
};
|
|
c.isTraitsOrDynamicPrototype = function(a) {
|
|
return a === c.traitsPrototype || a === c.dynamicPrototype;
|
|
};
|
|
c.prototype.asGetEnumerableKeys = function() {
|
|
return c.isTraitsOrDynamicPrototype(this) ? J.call(this) : this._children.asGetEnumerableKeys();
|
|
};
|
|
c.prototype.getProperty = function(a, c, h) {
|
|
if (h) {
|
|
return a = G.isQName(a) ? a : this.resolveMultinameProperty(a.namespaces, a.name, a.flags), this[G.getQualifiedName(a)];
|
|
}
|
|
if (b.isIndex(a)) {
|
|
return this._children[a];
|
|
}
|
|
var d = u(a), e = new x(this, d);
|
|
this._children.forEach(function(a, b) {
|
|
if (1 === a._kind) {
|
|
var l = a.getProperty(d, c, h);
|
|
0 < l.length() && e.appendChild(l);
|
|
}
|
|
});
|
|
return e;
|
|
};
|
|
c.prototype.asGetNumericProperty = function(a) {
|
|
return this.asGetProperty(null, a, 0);
|
|
};
|
|
c.prototype.asSetNumericProperty = function(a, b) {
|
|
this.asSetProperty(null, a, 0, b);
|
|
};
|
|
c.prototype.asGetProperty = function(a, b, h) {
|
|
if (c.isTraitsOrDynamicPrototype(this)) {
|
|
return C.call(this, a, b, h);
|
|
}
|
|
h &= G.ATTRIBUTE;
|
|
return this.getProperty(r(a, b, h), h, !1);
|
|
};
|
|
c.prototype.hasProperty = function(a, c) {
|
|
return b.isIndex(a) ? Number(a) < this._children.length : !0;
|
|
};
|
|
c.prototype.asHasProperty = function(a, b, h) {
|
|
if (c.isTraitsOrDynamicPrototype(this)) {
|
|
return C.call(this, a, b, h);
|
|
}
|
|
h &= G.ATTRIBUTE;
|
|
return this.hasProperty(r(a, b, h), h);
|
|
};
|
|
c.prototype.asHasPropertyInternal = function(a, b, c) {
|
|
c &= G.ATTRIBUTE;
|
|
return this.hasProperty(r(a, b, c), c);
|
|
};
|
|
c.prototype.setProperty = function(a, c, h) {
|
|
b.isIndex(a) ? this.appendChild(h) : (a = this.getProperty(a, c, !1), e(a).replace(0, e(h)));
|
|
};
|
|
c.prototype.asSetProperty = function(a, b, h, d) {
|
|
if (c.isTraitsOrDynamicPrototype(this)) {
|
|
return E.call(this, a, b, h, d);
|
|
}
|
|
h &= G.ATTRIBUTE;
|
|
b = r(a, b, h);
|
|
return this.setProperty(b, h, d);
|
|
};
|
|
c.prototype.asCallProperty = function(a, b, h, d, e) {
|
|
if (c.isTraitsOrDynamicPrototype(this) || d) {
|
|
return O.call(this, a, b, h, d, e);
|
|
}
|
|
var l;
|
|
l = this.resolveMultinameProperty(a, b, h);
|
|
if (this.asGetNumericProperty && G.isNumeric(l)) {
|
|
l = this.asGetNumericProperty(l);
|
|
} else {
|
|
var n = this.asOpenMethods;
|
|
l = n && n[l] || this[l];
|
|
}
|
|
if (l) {
|
|
return O.call(this, a, b, h, d, e);
|
|
}
|
|
if (1 === this.length()) {
|
|
return this._children[0].asCallProperty(a, b, h, d, e);
|
|
}
|
|
throw new TypeError;
|
|
};
|
|
c.instanceConstructor = c;
|
|
c.callableConstructor = function(a) {
|
|
"undefined" === typeof a && (a = void 0);
|
|
if (null === a || void 0 === a) {
|
|
a = "";
|
|
}
|
|
return q(a);
|
|
};
|
|
return c;
|
|
}(g.ASNative);
|
|
g.ASXMLList = U;
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(a) {
|
|
return c.getPublicQualifiedName(a);
|
|
}
|
|
function k(a) {
|
|
var b = a.name;
|
|
return(a = a.namespaces[0]) && a.uri ? a.uri + "::" + b : b;
|
|
}
|
|
function s(a) {
|
|
if (!a) {
|
|
return null;
|
|
}
|
|
var b = [], c;
|
|
for (c in a) {
|
|
b.push(m(a[c]));
|
|
}
|
|
return b;
|
|
}
|
|
function m(a) {
|
|
var b = {};
|
|
b[u] = a.name;
|
|
b[h] = a.value.map(function(a) {
|
|
var b = {};
|
|
b[h] = a.value;
|
|
b[x] = a.key;
|
|
return b;
|
|
});
|
|
return b;
|
|
}
|
|
function d(b, c, h, d) {
|
|
function n(c) {
|
|
a(c, "No traits array found on class" + b.classInfo.instanceInfo.name);
|
|
for (var f = c.length;f--;) {
|
|
var x = c[f];
|
|
if (x.name.getNamespace().isPublic() || x.name.uri) {
|
|
var g = k(x.name);
|
|
if (V[g] !== Q[g]) {
|
|
var C = M[g];
|
|
C[q] = "readwrite";
|
|
2 === x.kind && (C[w] = k(x.methodInfo.returnType));
|
|
} else {
|
|
if (!M[g]) {
|
|
switch(C = {}, M[g] = C, x.kind) {
|
|
case 6:
|
|
;
|
|
case 0:
|
|
if (!(d & 8)) {
|
|
continue;
|
|
}
|
|
C[u] = g;
|
|
C[l] = void 0 === x.name.uri ? null : x.name.uri;
|
|
C[w] = x.typeName ? k(x.typeName) : "*";
|
|
C[q] = "readwrite";
|
|
C[e] = d & 64 ? s(x.metadata) : null;
|
|
B.push(C);
|
|
break;
|
|
case 1:
|
|
if (!m) {
|
|
continue;
|
|
}
|
|
C[r] = x.methodInfo.returnType ? k(x.methodInfo.returnType) : "*";
|
|
C[e] = d & 64 ? s(x.metadata) : null;
|
|
C[u] = g;
|
|
C[l] = void 0 === x.name.uri ? null : x.name.uri;
|
|
for (var g = C[y] = [], x = x.methodInfo.parameters, K = 0;K < x.length;K++) {
|
|
var F = x[K], A = {};
|
|
A[w] = F.type ? k(F.type) : "*";
|
|
A[G] = "value" in F;
|
|
g.push(A);
|
|
}
|
|
C[p] = U;
|
|
L.push(C);
|
|
break;
|
|
case 2:
|
|
;
|
|
case 3:
|
|
if (!(d & 16) || h) {
|
|
continue;
|
|
}
|
|
C[u] = g;
|
|
2 === x.kind ? (C[w] = x.methodInfo.returnType ? k(x.methodInfo.returnType) : "*", V[g] = C) : (K = x.methodInfo.parameters[0].type, C[w] = K ? k(K) : "*", Q[g] = C);
|
|
C[q] = 2 === x.kind ? "readonly" : "writeonly";
|
|
C[e] = d & 64 ? s(x.metadata) : null;
|
|
C[l] = void 0 === x.name.uri ? null : x.name.uri;
|
|
C[p] = U;
|
|
z.push(C);
|
|
break;
|
|
default:
|
|
a(!1, "Unknown trait type: " + x.kind);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var x = d & 2, m = d & 32 && !h, A = {}, B = A[f("variables")] = d & 8 ? [] : null, z = A[f("accessors")] = d & 16 ? [] : null, P = null;
|
|
d & 64 && (P = h ? [] : s(c.metadata) || []);
|
|
A[e] = P;
|
|
A[f("constructor")] = null;
|
|
if (d & 4) {
|
|
if (c = A[f("interfaces")] = [], d & 512 || !h) {
|
|
for (var D in b.implementedInterfaces) {
|
|
P = b.implementedInterfaces[D].getQualifiedClassName(), c.push(P);
|
|
}
|
|
}
|
|
} else {
|
|
A[f("interfaces")] = null;
|
|
}
|
|
var L = A[f("methods")] = m ? [] : null;
|
|
D = A[f("bases")] = x ? [] : null;
|
|
var M = {}, V = {}, Q = {};
|
|
for (c = !1;b;) {
|
|
var U = k(b.classInfo.instanceInfo.name);
|
|
x && c && !h ? D.push(U) : c = !0;
|
|
if (d & 1024 && b === g.ASObject) {
|
|
break;
|
|
}
|
|
d & 512 || !h ? n(b.classInfo.instanceInfo.traits) : n(b.classInfo.traits);
|
|
b = b.baseClass;
|
|
}
|
|
h && (d & 16 && (c = {}, c[u] = "prototype", c[w] = "*", c[q] = "readonly", c[e] = null, c[l] = null, c[p] = "Class", z.push(c)), x && (D.pop(), D.push("Class", "Object"), b = g.ASClass));
|
|
return A;
|
|
}
|
|
var a = b.Debug.assert, c = b.AVM2.ABC.Multiname, n;
|
|
(function(a) {
|
|
a[a.HIDE_NSURI_METHODS = 1] = "HIDE_NSURI_METHODS";
|
|
a[a.INCLUDE_BASES = 2] = "INCLUDE_BASES";
|
|
a[a.INCLUDE_INTERFACES = 4] = "INCLUDE_INTERFACES";
|
|
a[a.INCLUDE_VARIABLES = 8] = "INCLUDE_VARIABLES";
|
|
a[a.INCLUDE_ACCESSORS = 16] = "INCLUDE_ACCESSORS";
|
|
a[a.INCLUDE_METHODS = 32] = "INCLUDE_METHODS";
|
|
a[a.INCLUDE_METADATA = 64] = "INCLUDE_METADATA";
|
|
a[a.INCLUDE_CONSTRUCTOR = 128] = "INCLUDE_CONSTRUCTOR";
|
|
a[a.INCLUDE_TRAITS = 256] = "INCLUDE_TRAITS";
|
|
a[a.USE_ITRAITS = 512] = "USE_ITRAITS";
|
|
a[a.HIDE_OBJECT = 1024] = "HIDE_OBJECT";
|
|
})(n || (n = {}));
|
|
var p = f("declaredBy"), e = f("metadata"), q = f("access"), l = f("uri"), u = f("name"), w = f("type"), r = f("returnType"), h = f("value"), x = f("key"), y = f("parameters"), G = f("optional");
|
|
g.describeTypeJSON = function(b, c) {
|
|
if (!b || "object" !== typeof b) {
|
|
return null;
|
|
}
|
|
var h = b.classInfo ? b : Object.getPrototypeOf(b).class;
|
|
a(h, "No class found for object " + b);
|
|
var e = h === b, l = h.classInfo, n = {};
|
|
n[u] = k(l.instanceInfo.name);
|
|
n[f("isDynamic")] = e || !(l.instanceInfo.flags & 1);
|
|
n[f("isFinal")] = e || !!(l.instanceInfo.flags & 2);
|
|
n[f("isStatic")] = e;
|
|
c & 256 && (n[f("traits")] = d(h, l, e, c));
|
|
return n;
|
|
};
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.Debug.assert, k = b.ObjectUtilities.createEmptyObject;
|
|
(function(b) {
|
|
(function(b) {
|
|
var d = Object.prototype.asGetProperty, a = Object.prototype.asSetProperty, c = Object.prototype.asHasProperty, n = Object.prototype.asDeleteProperty, p = Object.prototype.asGetEnumerableKeys, e = function(b) {
|
|
function e(a) {
|
|
}
|
|
__extends(e, b);
|
|
e.isTraitsOrDynamicPrototype = function(a) {
|
|
return a === e.traitsPrototype || a === e.dynamicPrototype;
|
|
};
|
|
e.makePrimitiveKey = function(a) {
|
|
if ("string" === typeof a || "number" === typeof a) {
|
|
return a;
|
|
}
|
|
f("object" === typeof a || "function" === typeof a, typeof a);
|
|
};
|
|
e.prototype.init = function(a) {
|
|
this.weakKeys = !!a;
|
|
this.map = new WeakMap;
|
|
a || (this.keys = []);
|
|
this.primitiveMap = k();
|
|
};
|
|
e.prototype.asGetNumericProperty = function(a) {
|
|
return this.asGetProperty(null, a, 0);
|
|
};
|
|
e.prototype.asSetNumericProperty = function(a, b) {
|
|
this.asSetProperty(null, a, 0, b);
|
|
};
|
|
e.prototype.asGetProperty = function(a, b, c) {
|
|
if (e.isTraitsOrDynamicPrototype(this)) {
|
|
return d.call(this, a, b, c);
|
|
}
|
|
a = e.makePrimitiveKey(b);
|
|
return void 0 !== a ? this.primitiveMap[a] : this.map.get(Object(b));
|
|
};
|
|
e.prototype.asSetProperty = function(b, c, d, h) {
|
|
if (e.isTraitsOrDynamicPrototype(this)) {
|
|
return a.call(this, b, c, d, h);
|
|
}
|
|
b = e.makePrimitiveKey(c);
|
|
void 0 !== b ? this.primitiveMap[b] = h : (this.map.set(Object(c), h), !this.weakKeys && 0 > this.keys.indexOf(c) && this.keys.push(c));
|
|
};
|
|
e.prototype.asHasProperty = function(a, b, d) {
|
|
if (e.isTraitsOrDynamicPrototype(this)) {
|
|
return c.call(this, a, b, d);
|
|
}
|
|
a = e.makePrimitiveKey(b);
|
|
return void 0 !== a ? a in this.primitiveMap : this.map.has(Object(b));
|
|
};
|
|
e.prototype.asDeleteProperty = function(a, b, c) {
|
|
if (e.isTraitsOrDynamicPrototype(this)) {
|
|
return n.call(this, a, b, c);
|
|
}
|
|
a = e.makePrimitiveKey(b);
|
|
void 0 !== a && delete this.primitiveMap[a];
|
|
this.map.delete(Object(b));
|
|
var h;
|
|
!this.weakKeys && 0 <= (h = this.keys.indexOf(b)) && this.keys.splice(h, 1);
|
|
return!0;
|
|
};
|
|
e.prototype.asGetEnumerableKeys = function() {
|
|
if (e.isTraitsOrDynamicPrototype(this)) {
|
|
return p.call(this);
|
|
}
|
|
var a = [], b;
|
|
for (b in this.primitiveMap) {
|
|
a.push(b);
|
|
}
|
|
return this.weakKeys ? a : a.concat(this.keys);
|
|
};
|
|
e.protocol = e.prototype;
|
|
return e;
|
|
}(g.ASNative);
|
|
b.Dictionary = e;
|
|
b.OriginalDictionary = e;
|
|
})(b.utils || (b.utils = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.Debug.notImplemented, k = b.AVM2.ABC.Namespace;
|
|
(function(b) {
|
|
(function(b) {
|
|
var d = Object.prototype.asGetProperty, a = Object.prototype.asSetProperty, c = Object.prototype.asCallProperty, n = Object.prototype.asHasProperty, p = Object.prototype.asHasOwnProperty, e = Object.prototype.asHasTraitProperty, q = Object.prototype.asDeleteProperty, l = function(b) {
|
|
function l() {
|
|
b.apply(this, arguments);
|
|
}
|
|
__extends(l, b);
|
|
l.prototype.asGetProperty = function(a, b, l) {
|
|
return e.call(this, a, b, l) ? d.call(this, a, b, l) : c.call(this, [k.PROXY], "getProperty", 0, !1, [b]);
|
|
};
|
|
l.prototype.asGetNumericProperty = function(a) {
|
|
return this.asGetProperty(null, a, 0);
|
|
};
|
|
l.prototype.asSetNumericProperty = function(a, b) {
|
|
this.asSetProperty(null, a, 0, b);
|
|
};
|
|
l.prototype.asSetProperty = function(b, h, d, l) {
|
|
e.call(this, b, h, d) ? a.call(this, b, h, d, l) : c.call(this, [k.PROXY], "setProperty", 0, !1, [h, l]);
|
|
};
|
|
l.prototype.asCallProperty = function(a, b, d, l, n) {
|
|
return e.call(this, a, b, d) ? c.call(this, a, b, d, !1, n) : c.call(this, [k.PROXY], "callProperty", 0, !1, [b].concat(n));
|
|
};
|
|
l.prototype.asHasProperty = function(a, b, d) {
|
|
return e.call(this, a, b, d) ? n.call(this, a, b, d) : c.call(this, [k.PROXY], "hasProperty", 0, !1, [b]);
|
|
};
|
|
l.prototype.asHasOwnProperty = function(a, b, d) {
|
|
return e.call(this, a, b, d) ? p.call(this, a, b, d) : c.call(this, [k.PROXY], "hasProperty", 0, !1, [b]);
|
|
};
|
|
l.prototype.asDeleteProperty = function(a, b, d) {
|
|
return e.call(this, a, b, d) ? q.call(this, a, b, d) : c.call(this, [k.PROXY], "deleteProperty", 0, !1, [b]);
|
|
};
|
|
l.prototype.asNextName = function(a) {
|
|
f("Proxy asNextName");
|
|
};
|
|
l.prototype.asNextValue = function(a) {
|
|
f("Proxy asNextValue");
|
|
};
|
|
l.prototype.asNextNameIndex = function(a) {
|
|
f("Proxy asNextNameIndex");
|
|
};
|
|
l.protocol = l.prototype;
|
|
return l;
|
|
}(g.ASNative);
|
|
b.Proxy = l;
|
|
b.OriginalProxy = l;
|
|
})(b.utils || (b.utils = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.Debug.unexpected, t = b.ArrayUtilities.DataBuffer, s = b.Debug.assert;
|
|
(function(b) {
|
|
(function(b) {
|
|
var a = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b.AMF0 = 0;
|
|
b.AMF3 = 3;
|
|
b.DEFAULT = b.AMF3;
|
|
return b;
|
|
}(g.ASNative);
|
|
b.ObjectEncoding = a;
|
|
})(b.net || (b.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
(function(m) {
|
|
(function(d) {
|
|
var a = function(a) {
|
|
function d() {
|
|
}
|
|
__extends(d, a);
|
|
Object.defineProperty(d, "defaultObjectEncoding", {get:function() {
|
|
return this._defaultObjectEncoding;
|
|
}, set:function(a) {
|
|
this._defaultObjectEncoding = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.readObject = function() {
|
|
switch(this._objectEncoding) {
|
|
case m.net.ObjectEncoding.AMF0:
|
|
return k.AMF0.read(this);
|
|
case m.net.ObjectEncoding.AMF3:
|
|
return k.AMF3.read(this);
|
|
default:
|
|
f("Object Encoding");
|
|
}
|
|
};
|
|
d.prototype.writeObject = function(a) {
|
|
switch(this._objectEncoding) {
|
|
case m.net.ObjectEncoding.AMF0:
|
|
return k.AMF0.write(this, a);
|
|
case m.net.ObjectEncoding.AMF3:
|
|
return k.AMF3.write(this, a);
|
|
default:
|
|
f("Object Encoding");
|
|
}
|
|
};
|
|
d.instanceConstructor = t;
|
|
d.staticNatives = [t];
|
|
d.instanceNatives = [t.prototype];
|
|
d.callableConstructor = null;
|
|
d.initializer = function(a) {
|
|
var c = b.Timeline.BinarySymbol;
|
|
s(c);
|
|
var f, l = 0;
|
|
a ? (a instanceof ArrayBuffer ? f = a.slice() : Array.isArray(a) ? f = (new Uint8Array(f)).buffer : a instanceof c ? f = (new Uint8Array(a.buffer)).buffer.slice() : "buffer" in a ? (s(a.buffer instanceof ArrayBuffer), f = a.buffer.slice()) : b.Debug.unexpected("Source type."), l = f.byteLength) : f = new ArrayBuffer(d.INITIAL_SIZE);
|
|
this._buffer = f;
|
|
this._length = l;
|
|
this._position = 0;
|
|
this._updateViews();
|
|
this._objectEncoding = d.defaultObjectEncoding;
|
|
this._littleEndian = !1;
|
|
this._bitLength = this._bitBuffer = 0;
|
|
};
|
|
d.protocol = d.prototype;
|
|
d.INITIAL_SIZE = 128;
|
|
d._defaultObjectEncoding = m.net.ObjectEncoding.DEFAULT;
|
|
return d;
|
|
}(g.ASNative);
|
|
d.ByteArray = a;
|
|
a.prototype.asGetNumericProperty = t.prototype.getValue;
|
|
a.prototype.asSetNumericProperty = t.prototype.setValue;
|
|
d.OriginalByteArray = a;
|
|
})(m.utils || (m.utils = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.Debug.notImplemented, k = b.AVM2.Runtime.asCoerceString;
|
|
(function(s) {
|
|
(function(m) {
|
|
var d = function(a) {
|
|
function b() {
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "enabled", {get:function() {
|
|
f("public flash.system.IME::get enabled");
|
|
}, set:function(a) {
|
|
f("public flash.system.IME::set enabled");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "conversionMode", {get:function() {
|
|
f("public flash.system.IME::get conversionMode");
|
|
}, set:function(a) {
|
|
k(a);
|
|
f("public flash.system.IME::set conversionMode");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.setCompositionString = function(a) {
|
|
k(a);
|
|
f("public flash.system.IME::static setCompositionString");
|
|
};
|
|
b.doConversion = function() {
|
|
f("public flash.system.IME::static doConversion");
|
|
};
|
|
b.compositionSelectionChanged = function(a, b) {
|
|
f("public flash.system.IME::static compositionSelectionChanged");
|
|
};
|
|
b.compositionAbandoned = function() {
|
|
f("public flash.system.IME::static compositionAbandoned");
|
|
};
|
|
b._checkSupported = function() {
|
|
f("public flash.system.IME::static _checkSupported");
|
|
};
|
|
return b;
|
|
}(g.ASNative);
|
|
m.IME = d;
|
|
d = function(a) {
|
|
function c() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(c, a);
|
|
Object.defineProperty(c, "ime", {get:function() {
|
|
f("public flash.system.System::get ime");
|
|
}, enumerable:!0, configurable:!0});
|
|
c.setClipboard = function(a) {
|
|
a = k(a);
|
|
null === b.ClipboardService.instance ? f("public flash.system.System::setClipboard") : b.ClipboardService.instance.setClipboard(a);
|
|
};
|
|
Object.defineProperty(c, "totalMemoryNumber", {get:function() {
|
|
return 2097152;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "freeMemory", {get:function() {
|
|
return 1048576;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "privateMemory", {get:function() {
|
|
f("public flash.system.System::get privateMemory");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "processCPUUsage", {get:function() {
|
|
f("public flash.system.System::get processCPUUsage");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "useCodePage", {get:function() {
|
|
f("public flash.system.System::get useCodePage");
|
|
}, set:function(a) {
|
|
f("public flash.system.System::set useCodePage");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "vmVersion", {get:function() {
|
|
return "1.0 Shumway - Mozilla Research";
|
|
}, enumerable:!0, configurable:!0});
|
|
c.pause = function() {
|
|
f("public flash.system.System::static pause");
|
|
};
|
|
c.resume = function() {
|
|
f("public flash.system.System::static resume");
|
|
};
|
|
c.exit = function(a) {
|
|
f("public flash.system.System::static exit");
|
|
};
|
|
c.gc = function() {
|
|
f("public flash.system.System::static gc");
|
|
};
|
|
c.pauseForGCIfCollectionImminent = function(a) {
|
|
f("public flash.system.System::static pauseForGCIfCollectionImminent");
|
|
};
|
|
c.disposeXML = function(a) {
|
|
f("public flash.system.System::static disposeXML");
|
|
};
|
|
Object.defineProperty(c, "swfVersion", {get:function() {
|
|
return 19;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "apiVersion", {get:function() {
|
|
return 26;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.getArgv = function() {
|
|
return[];
|
|
};
|
|
c.getRunmode = function() {
|
|
return "mixed";
|
|
};
|
|
return c;
|
|
}(g.ASNative);
|
|
m.System = d;
|
|
m.OriginalSystem = d;
|
|
})(s.system || (s.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.AVM2.ABC.Multiname, t = b.AVM2.ABC.ClassInfo, s = b.AVM2.ABC.ScriptInfo, m = b.AVM2.ABC.InstanceInfo, d = b.AVM2.ABC.Info, a = b.AVM2.ABC.MethodInfo, c = b.Debug.assert, n = b.Debug.notImplemented, p = b.ArrayUtilities.popManyIntoVoid, e = function() {
|
|
return function(a) {
|
|
"undefined" === typeof a && (a = "");
|
|
this.message = a;
|
|
this.name = "VerifierError";
|
|
};
|
|
}();
|
|
g.VerifierError = e;
|
|
var q = function() {
|
|
return function() {
|
|
};
|
|
}();
|
|
g.TypeInformation = q;
|
|
var l = function() {
|
|
function a() {
|
|
}
|
|
a.from = function(b, h) {
|
|
c(b.hash);
|
|
var d = a._cache[b.hash];
|
|
d || (d = a._cache[b.hash] = new w(b, h));
|
|
return d;
|
|
};
|
|
a.fromSimpleName = function(b, c) {
|
|
return a.fromName(f.fromSimpleName(b), c);
|
|
};
|
|
a.fromName = function(b, h) {
|
|
if (void 0 === b) {
|
|
return a.Undefined;
|
|
}
|
|
var d = f.isQName(b) ? f.getFullQualifiedName(b) : void 0;
|
|
if (d) {
|
|
var e = a._cache.byQN[d];
|
|
if (e) {
|
|
return e;
|
|
}
|
|
}
|
|
if (d === f.getPublicQualifiedName("void")) {
|
|
return a.Void;
|
|
}
|
|
c(h, "An ApplicationDomain is needed.");
|
|
e = (e = h.findClassInfo(b)) ? a.from(e, h) : a.Any;
|
|
b.hasTypeParameter() && (e = new x(e, a.fromName(b.typeParameter, h)));
|
|
return a._cache.byQN[d] = e;
|
|
};
|
|
a.initializeTypes = function(b) {
|
|
a._typesInitialized || (a.Any = new u("any", "?"), a.Null = new u("Null", "X"), a.Void = new u("Void", "V"), a.Undefined = new u("Undefined", "_"), a.Int = a.fromSimpleName("int", b).instanceType(), a.Uint = a.fromSimpleName("uint", b).instanceType(), a.Class = a.fromSimpleName("Class", b).instanceType(), a.Array = a.fromSimpleName("Array", b).instanceType(), a.Object = a.fromSimpleName("Object", b).instanceType(), a.String = a.fromSimpleName("String", b).instanceType(), a.Number = a.fromSimpleName("Number",
|
|
b).instanceType(), a.Boolean = a.fromSimpleName("Boolean", b).instanceType(), a.Function = a.fromSimpleName("Function", b).instanceType(), a.XML = a.fromSimpleName("XML", b).instanceType(), a.XMLList = a.fromSimpleName("XMLList", b).instanceType(), a.Dictionary = a.fromSimpleName("flash.utils.Dictionary", b).instanceType(), a._typesInitialized = !0);
|
|
};
|
|
a.prototype.equals = function(a) {
|
|
return this === a;
|
|
};
|
|
a.prototype.merge = function(b) {
|
|
return a.Any;
|
|
};
|
|
a.prototype.instanceType = function() {
|
|
return a.Any;
|
|
};
|
|
a.prototype.classType = function() {
|
|
return a.Any;
|
|
};
|
|
a.prototype.super = function() {
|
|
b.Debug.abstractMethod("super");
|
|
return null;
|
|
};
|
|
a.prototype.applyType = function(a) {
|
|
return null;
|
|
};
|
|
a.prototype.getTrait = function(a, b, c) {
|
|
return null;
|
|
};
|
|
a.prototype.isNumeric = function() {
|
|
return this === a.Int || this === a.Uint || this === a.Number;
|
|
};
|
|
a.prototype.isString = function() {
|
|
return this === a.String;
|
|
};
|
|
a.prototype.isScriptInfo = function() {
|
|
return!1;
|
|
};
|
|
a.prototype.isClassInfo = function() {
|
|
return!1;
|
|
};
|
|
a.prototype.isInstanceInfo = function() {
|
|
return!1;
|
|
};
|
|
a.prototype.isMethodInfo = function() {
|
|
return!1;
|
|
};
|
|
a.prototype.isTraitsType = function() {
|
|
return this instanceof w;
|
|
};
|
|
a.prototype.isParameterizedType = function() {
|
|
return this instanceof x;
|
|
};
|
|
a.prototype.isMethodType = function() {
|
|
return this instanceof r;
|
|
};
|
|
a.prototype.isMultinameType = function() {
|
|
return this instanceof h;
|
|
};
|
|
a.prototype.isConstantType = function() {
|
|
return this instanceof y;
|
|
};
|
|
a.prototype.isSubtypeOf = function(a) {
|
|
return this === a || this.equals(a) ? !0 : this.merge(a) === this;
|
|
};
|
|
a.prototype.asTraitsType = function() {
|
|
c(this.isTraitsType());
|
|
return this;
|
|
};
|
|
a.prototype.asMethodType = function() {
|
|
c(this.isMethodType());
|
|
return this;
|
|
};
|
|
a.prototype.asMultinameType = function() {
|
|
c(this.isMultinameType());
|
|
return this;
|
|
};
|
|
a.prototype.asConstantType = function() {
|
|
c(this.isConstantType());
|
|
return this;
|
|
};
|
|
a.prototype.getConstantValue = function() {
|
|
c(this.isConstantType());
|
|
return this.value;
|
|
};
|
|
a.prototype.asParameterizedType = function() {
|
|
c(this.isParameterizedType());
|
|
return this;
|
|
};
|
|
a._cache = {byQN:b.ObjectUtilities.createEmptyObject(), byHash:b.ObjectUtilities.createEmptyObject()};
|
|
a._typesInitialized = !1;
|
|
return a;
|
|
}();
|
|
g.Type = l;
|
|
var u = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.name = c;
|
|
this.symbol = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toString = function() {
|
|
return this.symbol;
|
|
};
|
|
b.prototype.instanceType = function() {
|
|
return l.Any;
|
|
};
|
|
return b;
|
|
}(l);
|
|
g.AtomType = u;
|
|
var w = function(h) {
|
|
function d(a, b) {
|
|
h.call(this);
|
|
this.info = a;
|
|
this.domain = b;
|
|
}
|
|
__extends(d, h);
|
|
d.prototype.instanceType = function() {
|
|
c(this.info instanceof t);
|
|
var a = this.info;
|
|
return this._cachedType || (this._cachedType = l.from(a.instanceInfo, this.domain));
|
|
};
|
|
d.prototype.classType = function() {
|
|
c(this.info instanceof m);
|
|
var a = this.info;
|
|
return this._cachedType || (this._cachedType = l.from(a.classInfo, this.domain));
|
|
};
|
|
d.prototype.super = function() {
|
|
if (this.info instanceof t) {
|
|
return l.Class;
|
|
}
|
|
c(this.info instanceof m);
|
|
var a = this.info;
|
|
return a.superName ? (a = l.fromName(a.superName, this.domain).instanceType(), c(a instanceof d && a.info instanceof m), a) : null;
|
|
};
|
|
d.prototype.findTraitByName = function(a, b, h) {
|
|
var d = !h, e;
|
|
if (f.isQName(b)) {
|
|
for (b = f.getQualifiedName(b), n = 0;n < a.length;n++) {
|
|
if (e = a[n], f.getQualifiedName(e.name) === b && !(h && e.isGetter() || d && e.isSetter())) {
|
|
return e;
|
|
}
|
|
}
|
|
} else {
|
|
c(b instanceof f);
|
|
for (var l, n = 0;n < b.namespaces.length;n++) {
|
|
if (d = b.getQName(n), b.namespaces[n].isDynamic()) {
|
|
l = d;
|
|
} else {
|
|
if (e = this.findTraitByName(a, d, h)) {
|
|
return e;
|
|
}
|
|
}
|
|
}
|
|
if (l) {
|
|
return this.findTraitByName(a, l, h);
|
|
}
|
|
}
|
|
};
|
|
d.prototype.getTrait = function(a, b, c) {
|
|
if (a.isMultinameType()) {
|
|
return null;
|
|
}
|
|
var h = a.getConstantValue();
|
|
if (h.isAttribute()) {
|
|
return null;
|
|
}
|
|
if (c && (this.isInstanceInfo() || this.isClassInfo())) {
|
|
c = this;
|
|
do {
|
|
(h = c.getTrait(a, b, !1)) || (c = c.super());
|
|
} while (!h && c);
|
|
return h;
|
|
}
|
|
return this.findTraitByName(this.info.traits, h, b);
|
|
};
|
|
d.prototype.getTraitAt = function(a) {
|
|
for (var c = this.info.traits, h = c.length - 1;0 <= h;h--) {
|
|
if (c[h].slotId === a) {
|
|
return c[h];
|
|
}
|
|
}
|
|
b.Debug.unexpected("Cannot find trait with slotId: " + a + " in " + c);
|
|
};
|
|
d.prototype.equals = function(a) {
|
|
return a.isTraitsType() ? this.info.traits === a.info.traits : !1;
|
|
};
|
|
d.prototype.merge = function(a) {
|
|
if (a.isTraitsType()) {
|
|
if (this.equals(a)) {
|
|
return this;
|
|
}
|
|
if (this.isNumeric() && a.isNumeric()) {
|
|
return l.Number;
|
|
}
|
|
if (this.isInstanceInfo() && a.isInstanceInfo()) {
|
|
for (var b = [], c = this;c;c = c.super()) {
|
|
b.push(c);
|
|
}
|
|
for (c = a;c;c = c.super()) {
|
|
for (a = 0;a < b.length;a++) {
|
|
if (b[a].equals(c)) {
|
|
return c;
|
|
}
|
|
}
|
|
}
|
|
return l.Object;
|
|
}
|
|
}
|
|
return l.Any;
|
|
};
|
|
d.prototype.isScriptInfo = function() {
|
|
return this.info instanceof s;
|
|
};
|
|
d.prototype.isClassInfo = function() {
|
|
return this.info instanceof t;
|
|
};
|
|
d.prototype.isMethodInfo = function() {
|
|
return this.info instanceof a;
|
|
};
|
|
d.prototype.isInstanceInfo = function() {
|
|
return this.info instanceof m;
|
|
};
|
|
d.prototype.isInstanceOrClassInfo = function() {
|
|
return this.isInstanceInfo() || this.isClassInfo();
|
|
};
|
|
d.prototype.applyType = function(a) {
|
|
return new x(this, a);
|
|
};
|
|
d.prototype._getInfoName = function() {
|
|
if (this.info instanceof s) {
|
|
return "SI";
|
|
}
|
|
if (this.info instanceof t) {
|
|
return "CI:" + this.info.instanceInfo.name.name;
|
|
}
|
|
if (this.info instanceof m) {
|
|
return "II:" + this.info.name.name;
|
|
}
|
|
if (this.info instanceof a) {
|
|
return "MI";
|
|
}
|
|
c(!1);
|
|
};
|
|
d.prototype.toString = function() {
|
|
switch(this) {
|
|
case l.Int:
|
|
return "I";
|
|
case l.Uint:
|
|
return "U";
|
|
case l.Array:
|
|
return "A";
|
|
case l.Object:
|
|
return "O";
|
|
case l.String:
|
|
return "S";
|
|
case l.Number:
|
|
return "N";
|
|
case l.Boolean:
|
|
return "B";
|
|
case l.Function:
|
|
return "F";
|
|
}
|
|
return this._getInfoName();
|
|
};
|
|
return d;
|
|
}(l);
|
|
g.TraitsType = w;
|
|
var r = function(a) {
|
|
function b(c, h) {
|
|
a.call(this, l.Function.info, h);
|
|
this.methodInfo = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toString = function() {
|
|
return "MT " + this.methodInfo;
|
|
};
|
|
b.prototype.returnType = function() {
|
|
return this._cachedType || (this._cachedType = l.fromName(this.methodInfo.returnType, this.domain));
|
|
};
|
|
return b;
|
|
}(w);
|
|
g.MethodType = r;
|
|
var h = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.namespaces = c;
|
|
this.name = h;
|
|
this.flags = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toString = function() {
|
|
return "MN";
|
|
};
|
|
return b;
|
|
}(l);
|
|
g.MultinameType = h;
|
|
var x = function(a) {
|
|
function b(c, h) {
|
|
a.call(this, c.info, c.domain);
|
|
this.type = c;
|
|
this.parameter = h;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(w);
|
|
g.ParameterizedType = x;
|
|
var y = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.value = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toString = function() {
|
|
return String(this.value);
|
|
};
|
|
b.from = function(a) {
|
|
return new b(a);
|
|
};
|
|
b.fromArray = function(a) {
|
|
return a.map(function(a) {
|
|
return new b(a);
|
|
});
|
|
};
|
|
return b;
|
|
}(l);
|
|
g.ConstantType = y;
|
|
var G = function() {
|
|
function a() {
|
|
this.id = a.id += 1;
|
|
this.stack = [];
|
|
this.scope = [];
|
|
this.local = [];
|
|
}
|
|
a.prototype.clone = function() {
|
|
var b = new a;
|
|
b.originalId = this.id;
|
|
b.stack = this.stack.slice(0);
|
|
b.scope = this.scope.slice(0);
|
|
b.local = this.local.slice(0);
|
|
return b;
|
|
};
|
|
a.prototype.trace = function(a) {
|
|
a.writeLn(this.toString());
|
|
};
|
|
a.prototype.toString = function() {
|
|
return "<" + this.id + (this.originalId ? ":" + this.originalId : "") + ", L[" + this.local.join(", ") + "], S[" + this.stack.join(", ") + "], $[" + this.scope.join(", ") + "]>";
|
|
};
|
|
a.prototype.equals = function(b) {
|
|
return a._arrayEquals(this.stack, b.stack) && a._arrayEquals(this.scope, b.scope) && a._arrayEquals(this.local, b.local);
|
|
};
|
|
a._arrayEquals = function(a, b) {
|
|
if (a.length != b.length) {
|
|
return!1;
|
|
}
|
|
for (var c = a.length - 1;0 <= c;c--) {
|
|
if (!a[c].equals(b[c])) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
a.prototype.isSubset = function(b) {
|
|
return a._arraySubset(this.stack, b.stack) && a._arraySubset(this.scope, b.scope) && a._arraySubset(this.local, b.local);
|
|
};
|
|
a._arraySubset = function(a, b) {
|
|
if (a.length != b.length) {
|
|
return!1;
|
|
}
|
|
for (var c = a.length - 1;0 <= c;c--) {
|
|
if (a[c] !== b[c] && !a[c].equals(b[c]) && a[c].merge(b[c]) !== a[c]) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
a.prototype.merge = function(b) {
|
|
a._mergeArrays(this.local, b.local);
|
|
a._mergeArrays(this.stack, b.stack);
|
|
a._mergeArrays(this.scope, b.scope);
|
|
};
|
|
a._mergeArrays = function(a, b) {
|
|
c(a.length === b.length, "a: " + a + " b: " + b);
|
|
for (var h = a.length - 1;0 <= h;h--) {
|
|
c(void 0 !== a[h] && void 0 !== b[h]), a[h] !== b[h] && (a[h] = a[h].merge(b[h]));
|
|
}
|
|
};
|
|
a.id = 0;
|
|
return a;
|
|
}();
|
|
g.State = G;
|
|
var I = function() {
|
|
function a(c, h, d) {
|
|
this.methodInfo = c;
|
|
this.domain = h;
|
|
this.savedScope = d;
|
|
this.writer = new b.IndentingWriter;
|
|
this.pushAnyCount = this.pushCount = 0;
|
|
l.initializeTypes(h);
|
|
this.writer = b.AVM2.Verifier.traceLevel.value ? new b.IndentingWriter : null;
|
|
this.multinames = c.abc.constantPool.multinames;
|
|
this.returnType = l.Undefined;
|
|
}
|
|
a.prototype.verify = function() {
|
|
var a = this.methodInfo;
|
|
this.writer && this.methodInfo.trace(this.writer);
|
|
c(a.localCount >= a.parameters.length + 1);
|
|
this._verifyBlocks(this._prepareEntryState());
|
|
};
|
|
a.prototype._prepareEntryState = function() {
|
|
var a = new G, b = this.methodInfo;
|
|
this.thisType = b.holder ? l.from(b.holder, this.domain) : l.Any;
|
|
a.local.push(this.thisType);
|
|
for (var h = b.parameters, d = 0;d < h.length;d++) {
|
|
a.local.push(l.fromName(h[d].type, this.domain).instanceType());
|
|
}
|
|
h = b.localCount - b.parameters.length - 1;
|
|
if (b.needsRest() || b.needsArguments()) {
|
|
a.local.push(l.Array), h -= 1;
|
|
}
|
|
for (d = 0;d < h;d++) {
|
|
a.local.push(l.Undefined);
|
|
}
|
|
c(a.local.length === b.localCount);
|
|
return a;
|
|
};
|
|
a.prototype._verifyBlocks = function(a) {
|
|
var c = this.writer, h = this.methodInfo.analysis.blocks;
|
|
h.forEach(function(a) {
|
|
a.verifierEntryState = a.verifierExitState = null;
|
|
});
|
|
for (var d = 0;d < h.length;d++) {
|
|
h[d].bdo = d;
|
|
}
|
|
var e = new b.SortedList(function(a, b) {
|
|
return a.bdo - b.bdo;
|
|
});
|
|
h[0].verifierEntryState = a;
|
|
for (e.push(h[0]);!e.isEmpty();) {
|
|
var l = e.pop(), n = l.verifierExitState = l.verifierEntryState.clone();
|
|
this._verifyBlock(l, n);
|
|
l.succs.forEach(function(a) {
|
|
e.contains(a) ? (c && c.writeLn("Forward Merged Block: " + a.bid + " " + n.toString() + " with " + a.verifierEntryState.toString()), a.verifierEntryState.merge(n), c && c.writeLn("Merged State: " + a.verifierEntryState)) : a.verifierEntryState ? a.verifierEntryState.isSubset(n) || (c && c.writeLn("Backward Merged Block: " + l.bid + " with " + a.bid + " " + n.toString() + " with " + a.verifierEntryState.toString()), a.verifierEntryState.merge(n), e.push(a), c && c.writeLn("Merged State: " +
|
|
a.verifierEntryState)) : (a.verifierEntryState = n.clone(), e.push(a), c && c.writeLn("Added Block: " + a.bid + " to worklist: " + a.verifierEntryState.toString()));
|
|
});
|
|
}
|
|
c && (c.writeLn("Inferred return type: " + this.returnType), c.writeLn("Quality pushCount: " + this.pushCount + ", pushAnyCount: " + this.pushAnyCount));
|
|
this.methodInfo.inferredReturnType = this.returnType;
|
|
};
|
|
a.prototype._verifyBlock = function(a, d) {
|
|
function x() {
|
|
return X.ti || (X.ti = new q);
|
|
}
|
|
function g(a) {
|
|
c(a);
|
|
x().type = a;
|
|
Z.push(a);
|
|
U.pushCount++;
|
|
a === l.Any && U.pushAnyCount++;
|
|
}
|
|
function m(a) {
|
|
return Z.pop();
|
|
}
|
|
function u() {
|
|
n(String(X));
|
|
}
|
|
function s() {
|
|
var a = U.multinames[X.index];
|
|
if (a.isRuntime()) {
|
|
var b;
|
|
b = a.isRuntimeName() ? m() : y.from(a.name);
|
|
var c;
|
|
c = a.isRuntimeNamespace() ? [m()] : y.fromArray(a.namespaces);
|
|
return new h(c, b, a.flags);
|
|
}
|
|
return y.from(a);
|
|
}
|
|
function G(a) {
|
|
return a.isMultinameType() && a.asMultinameType().name.isNumeric() || a.isConstantType() && f.isNumeric(a.getConstantValue()) ? !0 : !1;
|
|
}
|
|
function t(a, b) {
|
|
if (a.isTraitsType() || a.isParameterizedType()) {
|
|
var c = a.getTrait(b, !1, !0);
|
|
if (c) {
|
|
S && S.debugLn("getProperty(" + b + ") -> " + c);
|
|
x().trait = c;
|
|
if (c.isSlot() || c.isConst()) {
|
|
return l.fromName(c.typeName, U.domain).instanceType();
|
|
}
|
|
if (c.isGetter()) {
|
|
return l.fromName(c.methodInfo.returnType, U.domain).instanceType();
|
|
}
|
|
if (c.isClass()) {
|
|
return l.from(c.classInfo, U.domain);
|
|
}
|
|
if (c.isMethod()) {
|
|
return new r(c.methodInfo, U.domain);
|
|
}
|
|
} else {
|
|
if (G(b) && a.isParameterizedType()) {
|
|
return c = a.asParameterizedType().parameter, S && S.debugLn("getProperty(" + b + ") -> " + c), c;
|
|
}
|
|
a !== l.Array && S && S.warnLn("getProperty(" + b + ")");
|
|
}
|
|
}
|
|
return l.Any;
|
|
}
|
|
function I(a, b, c) {
|
|
if (a.isTraitsType() || a.isParameterizedType()) {
|
|
(c = a.getTrait(b, !0, !0)) ? (S && S.debugLn("setProperty(" + b + ") -> " + c), x().trait = c) : G(b) && a.isParameterizedType() || a !== l.Array && S && S.warnLn("setProperty(" + b + ")");
|
|
}
|
|
}
|
|
function C(a, b) {
|
|
if (a.isMultinameType()) {
|
|
return l.Any;
|
|
}
|
|
for (var c = U.savedScope, h = v.length - 1;h >= -c.length;h--) {
|
|
var d = 0 <= h ? v[h] : c[c.length + h];
|
|
if (d.isTraitsType()) {
|
|
if (d.getTrait(a, !1, !0)) {
|
|
x().scopeDepth = v.length - h - 1;
|
|
if (d.isClassInfo() || d.isScriptInfo()) {
|
|
x().object = k.Runtime.LazyInitializer.create(d.info);
|
|
}
|
|
S && S.debugLn("findProperty(" + a + ") -> " + d);
|
|
return d;
|
|
}
|
|
} else {
|
|
return S && S.warnLn("findProperty(" + a + ")"), l.Any;
|
|
}
|
|
}
|
|
if (c = U.domain.findDefiningScript(a.getConstantValue(), !1)) {
|
|
return x().object = k.Runtime.LazyInitializer.create(c.script), d = l.from(c.script, U.domain), S && S.debugLn("findProperty(" + a + ") -> " + d), d;
|
|
}
|
|
if (a.isConstantType() && "unsafeJSNative" === a.getConstantValue().name) {
|
|
return l.Any;
|
|
}
|
|
S && S.warnLn("findProperty(" + a + ")");
|
|
return l.Any;
|
|
}
|
|
function E(a) {
|
|
if (a instanceof w && (a = a.getTraitAt(X.index), S && S.debugLn("accessSlot() -> " + a), a)) {
|
|
x().trait = a;
|
|
if (a.isSlot()) {
|
|
return l.fromName(a.typeName, U.domain).instanceType();
|
|
}
|
|
if (a.isClass()) {
|
|
return l.from(a.classInfo, U.domain);
|
|
}
|
|
}
|
|
return l.Any;
|
|
}
|
|
function Q(a) {
|
|
if (a.isTraitsType() || a.isParameterizedType()) {
|
|
return a === l.Function || a === l.Class || a === l.Object ? l.Object : a.instanceType();
|
|
}
|
|
S && S.warnLn("construct(" + a + ")");
|
|
return l.Any;
|
|
}
|
|
for (var U = this, S = this.writer, aa = this.methodInfo, $ = aa.analysis.bytecodes, ea = d.local, Z = d.stack, v = d.scope, X, ba = this.savedScope[0], R, H, Y, ga = a.position, ca = a.end.position;ga <= ca;ga++) {
|
|
if (X = $[ga], R = X.op, 240 !== R && 241 !== R) {
|
|
switch(S && 1 < b.AVM2.Verifier.traceLevel.value && S.writeLn(("stateBefore: " + d.toString() + " $$[" + this.savedScope.join(", ") + "]").padRight(" ", 100) + " : " + ga + ", " + X.toString(aa.abc)), R) {
|
|
case 1:
|
|
break;
|
|
case 3:
|
|
m();
|
|
break;
|
|
case 4:
|
|
Y = s();
|
|
H = m();
|
|
c(H.super());
|
|
x().baseClass = k.Runtime.LazyInitializer.create(this.thisType.asTraitsType().super().classType().info);
|
|
g(t(H.super(), Y));
|
|
break;
|
|
case 5:
|
|
R = m();
|
|
Y = s();
|
|
H = m();
|
|
c(H.super());
|
|
x().baseClass = k.Runtime.LazyInitializer.create(this.thisType.asTraitsType().super().classType().info);
|
|
I(H.super(), Y, R);
|
|
break;
|
|
case 6:
|
|
u();
|
|
break;
|
|
case 7:
|
|
u();
|
|
break;
|
|
case 8:
|
|
d.local[X.index] = l.Undefined;
|
|
break;
|
|
case 10:
|
|
u();
|
|
break;
|
|
case 11:
|
|
u();
|
|
break;
|
|
case 12:
|
|
;
|
|
case 24:
|
|
;
|
|
case 13:
|
|
;
|
|
case 23:
|
|
;
|
|
case 14:
|
|
;
|
|
case 22:
|
|
;
|
|
case 15:
|
|
;
|
|
case 21:
|
|
;
|
|
case 19:
|
|
;
|
|
case 20:
|
|
;
|
|
case 25:
|
|
;
|
|
case 26:
|
|
m();
|
|
m();
|
|
break;
|
|
case 16:
|
|
break;
|
|
case 17:
|
|
;
|
|
case 18:
|
|
m();
|
|
break;
|
|
case 27:
|
|
m(l.Int);
|
|
break;
|
|
case 29:
|
|
v.pop();
|
|
break;
|
|
case 30:
|
|
;
|
|
case 35:
|
|
m(l.Int);
|
|
m();
|
|
g(l.Any);
|
|
break;
|
|
case 31:
|
|
g(l.Boolean);
|
|
break;
|
|
case 50:
|
|
g(l.Boolean);
|
|
break;
|
|
case 32:
|
|
g(l.Null);
|
|
break;
|
|
case 33:
|
|
g(l.Undefined);
|
|
break;
|
|
case 34:
|
|
u();
|
|
break;
|
|
case 36:
|
|
g(l.Int);
|
|
break;
|
|
case 37:
|
|
g(l.Int);
|
|
break;
|
|
case 44:
|
|
g(l.String);
|
|
break;
|
|
case 45:
|
|
g(l.Int);
|
|
break;
|
|
case 46:
|
|
g(l.Uint);
|
|
break;
|
|
case 47:
|
|
g(l.Number);
|
|
break;
|
|
case 38:
|
|
g(l.Boolean);
|
|
break;
|
|
case 39:
|
|
g(l.Boolean);
|
|
break;
|
|
case 40:
|
|
g(l.Number);
|
|
break;
|
|
case 41:
|
|
m();
|
|
break;
|
|
case 42:
|
|
R = m();
|
|
g(R);
|
|
g(R);
|
|
break;
|
|
case 43:
|
|
H = m();
|
|
Y = m();
|
|
g(H);
|
|
g(Y);
|
|
break;
|
|
case 28:
|
|
m();
|
|
v.push(l.Any);
|
|
break;
|
|
case 48:
|
|
v.push(m());
|
|
break;
|
|
case 49:
|
|
u();
|
|
break;
|
|
case 53:
|
|
;
|
|
case 54:
|
|
;
|
|
case 55:
|
|
g(l.Int);
|
|
break;
|
|
case 56:
|
|
;
|
|
case 57:
|
|
g(l.Number);
|
|
break;
|
|
case 58:
|
|
;
|
|
case 59:
|
|
;
|
|
case 60:
|
|
m(l.Int);
|
|
break;
|
|
case 61:
|
|
;
|
|
case 62:
|
|
m(l.Number);
|
|
break;
|
|
case 64:
|
|
g(l.Function);
|
|
break;
|
|
case 65:
|
|
p(Z, X.argCount);
|
|
H = m();
|
|
m();
|
|
g(l.Any);
|
|
break;
|
|
case 67:
|
|
throw new e("callmethod");;
|
|
case 68:
|
|
u();
|
|
break;
|
|
case 69:
|
|
;
|
|
case 78:
|
|
;
|
|
case 79:
|
|
;
|
|
case 70:
|
|
;
|
|
case 76:
|
|
p(Z, X.argCount);
|
|
Y = s();
|
|
H = m();
|
|
if (69 === R || 78 === R) {
|
|
H = this.thisType.super(), x().baseClass = k.Runtime.LazyInitializer.create(this.thisType.asTraitsType().super().classType().info);
|
|
}
|
|
H = t(H, Y);
|
|
if (79 === R || 78 === R) {
|
|
break;
|
|
}
|
|
H = H.isMethodType() ? H.asMethodType().returnType().instanceType() : H.isTraitsType() && H.isClassInfo() ? H.instanceType() : l.Any;
|
|
g(H);
|
|
break;
|
|
case 71:
|
|
this.returnType.merge(l.Undefined);
|
|
break;
|
|
case 72:
|
|
H = m();
|
|
aa.returnType && (Y = l.fromName(aa.returnType, this.domain).instanceType(), Y.isSubtypeOf(H) && (x().noCoercionNeeded = !0));
|
|
break;
|
|
case 73:
|
|
p(Z, X.argCount);
|
|
Z.pop();
|
|
this.thisType.isInstanceInfo() && this.thisType.super() === l.Object ? x().noCallSuperNeeded = !0 : x().baseClass = k.Runtime.LazyInitializer.create(this.thisType.asTraitsType().super().classType().info);
|
|
break;
|
|
case 66:
|
|
p(Z, X.argCount);
|
|
g(Q(m()));
|
|
break;
|
|
case 74:
|
|
p(Z, X.argCount);
|
|
Y = s();
|
|
g(Q(t(Z.pop(), Y)));
|
|
break;
|
|
case 75:
|
|
u();
|
|
break;
|
|
case 77:
|
|
u();
|
|
break;
|
|
case 80:
|
|
;
|
|
case 81:
|
|
;
|
|
case 82:
|
|
break;
|
|
case 83:
|
|
c(1 === X.argCount);
|
|
R = m();
|
|
H = m();
|
|
H === l.Any ? g(l.Any) : g(H.applyType(R));
|
|
break;
|
|
case 84:
|
|
u();
|
|
break;
|
|
case 85:
|
|
p(Z, 2 * X.argCount);
|
|
g(l.Object);
|
|
break;
|
|
case 86:
|
|
p(Z, X.argCount);
|
|
g(l.Array);
|
|
break;
|
|
case 87:
|
|
g(l.from(this.methodInfo, this.domain));
|
|
break;
|
|
case 88:
|
|
g(l.Any);
|
|
break;
|
|
case 89:
|
|
s();
|
|
m();
|
|
g(l.XMLList);
|
|
break;
|
|
case 90:
|
|
g(l.Any);
|
|
break;
|
|
case 93:
|
|
g(C(s(), !0));
|
|
break;
|
|
case 94:
|
|
g(C(s(), !1));
|
|
break;
|
|
case 95:
|
|
u();
|
|
break;
|
|
case 96:
|
|
Y = s();
|
|
g(t(C(Y, !0), Y));
|
|
break;
|
|
case 104:
|
|
;
|
|
case 97:
|
|
R = m();
|
|
Y = s();
|
|
H = m();
|
|
I(H, Y, R);
|
|
break;
|
|
case 98:
|
|
g(ea[X.index]);
|
|
break;
|
|
case 99:
|
|
ea[X.index] = m();
|
|
break;
|
|
case 100:
|
|
g(ba);
|
|
x().object = k.Runtime.LazyInitializer.create(ba.asTraitsType().info);
|
|
break;
|
|
case 101:
|
|
g(v[X.index]);
|
|
break;
|
|
case 102:
|
|
Y = s();
|
|
H = m();
|
|
g(t(H, Y));
|
|
break;
|
|
case 103:
|
|
u();
|
|
break;
|
|
case 105:
|
|
u();
|
|
break;
|
|
case 106:
|
|
s();
|
|
m();
|
|
g(l.Boolean);
|
|
break;
|
|
case 107:
|
|
u();
|
|
break;
|
|
case 108:
|
|
g(E(m()));
|
|
break;
|
|
case 109:
|
|
R = m();
|
|
H = m();
|
|
E(H);
|
|
break;
|
|
case 110:
|
|
u();
|
|
break;
|
|
case 111:
|
|
u();
|
|
break;
|
|
case 112:
|
|
m();
|
|
g(l.String);
|
|
break;
|
|
case 113:
|
|
m();
|
|
g(l.String);
|
|
break;
|
|
case 114:
|
|
m();
|
|
g(l.String);
|
|
break;
|
|
case 131:
|
|
;
|
|
case 115:
|
|
m();
|
|
g(l.Int);
|
|
break;
|
|
case 136:
|
|
;
|
|
case 116:
|
|
m();
|
|
g(l.Uint);
|
|
break;
|
|
case 132:
|
|
;
|
|
case 117:
|
|
m();
|
|
g(l.Number);
|
|
break;
|
|
case 129:
|
|
;
|
|
case 118:
|
|
m();
|
|
g(l.Boolean);
|
|
break;
|
|
case 119:
|
|
u();
|
|
break;
|
|
case 120:
|
|
break;
|
|
case 121:
|
|
m();
|
|
g(l.Number);
|
|
break;
|
|
case 122:
|
|
u();
|
|
break;
|
|
case 123:
|
|
u();
|
|
break;
|
|
case 128:
|
|
H = m();
|
|
Y = l.fromName(this.multinames[X.index], this.domain).instanceType();
|
|
Y.isSubtypeOf(H) && (x().noCoercionNeeded = !0);
|
|
g(Y);
|
|
break;
|
|
case 130:
|
|
break;
|
|
case 133:
|
|
m();
|
|
g(l.String);
|
|
break;
|
|
case 134:
|
|
H = m();
|
|
Y = l.fromName(this.multinames[X.index], this.domain).instanceType();
|
|
Y.isSubtypeOf(H) && (x().noCoercionNeeded = !0);
|
|
g(Y);
|
|
break;
|
|
case 135:
|
|
H = m();
|
|
m();
|
|
H.isTraitsType() ? g(H.instanceType()) : g(l.Any);
|
|
break;
|
|
case 137:
|
|
u();
|
|
break;
|
|
case 144:
|
|
;
|
|
case 145:
|
|
;
|
|
case 147:
|
|
m();
|
|
g(l.Number);
|
|
break;
|
|
case 146:
|
|
;
|
|
case 148:
|
|
ea[X.index] = l.Number;
|
|
break;
|
|
case 149:
|
|
m();
|
|
g(l.String);
|
|
break;
|
|
case 150:
|
|
m();
|
|
g(l.Boolean);
|
|
break;
|
|
case 160:
|
|
Y = m();
|
|
H = m();
|
|
H.isNumeric() && Y.isNumeric() ? g(l.Number) : H === l.String || Y === l.String ? g(l.String) : g(l.Any);
|
|
break;
|
|
case 161:
|
|
;
|
|
case 162:
|
|
;
|
|
case 163:
|
|
;
|
|
case 164:
|
|
m();
|
|
m();
|
|
g(l.Number);
|
|
break;
|
|
case 168:
|
|
;
|
|
case 169:
|
|
;
|
|
case 170:
|
|
;
|
|
case 165:
|
|
;
|
|
case 166:
|
|
;
|
|
case 167:
|
|
m();
|
|
m();
|
|
g(l.Int);
|
|
break;
|
|
case 151:
|
|
m();
|
|
g(l.Int);
|
|
break;
|
|
case 171:
|
|
;
|
|
case 172:
|
|
;
|
|
case 173:
|
|
;
|
|
case 174:
|
|
;
|
|
case 175:
|
|
;
|
|
case 176:
|
|
;
|
|
case 177:
|
|
;
|
|
case 180:
|
|
m();
|
|
m();
|
|
g(l.Boolean);
|
|
break;
|
|
case 178:
|
|
m();
|
|
g(l.Boolean);
|
|
break;
|
|
case 179:
|
|
m();
|
|
m();
|
|
g(l.Boolean);
|
|
break;
|
|
case 194:
|
|
;
|
|
case 195:
|
|
ea[X.index] = l.Int;
|
|
break;
|
|
case 193:
|
|
;
|
|
case 192:
|
|
;
|
|
case 196:
|
|
m();
|
|
g(l.Int);
|
|
break;
|
|
case 197:
|
|
;
|
|
case 198:
|
|
;
|
|
case 199:
|
|
m();
|
|
m();
|
|
g(l.Int);
|
|
break;
|
|
case 208:
|
|
;
|
|
case 209:
|
|
;
|
|
case 210:
|
|
;
|
|
case 211:
|
|
g(ea[R - 208]);
|
|
break;
|
|
case 212:
|
|
;
|
|
case 213:
|
|
;
|
|
case 214:
|
|
;
|
|
case 215:
|
|
ea[R - 212] = m();
|
|
break;
|
|
case 239:
|
|
break;
|
|
case 242:
|
|
break;
|
|
case 243:
|
|
break;
|
|
default:
|
|
console.info("Not Implemented: " + X);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
return a;
|
|
}(), C = function() {
|
|
function a() {
|
|
}
|
|
a.prototype._prepareScopeObjects = function(a, h) {
|
|
var e = a.abc.applicationDomain;
|
|
return h.getScopeObjects().map(function(a) {
|
|
if (a instanceof d) {
|
|
return l.from(a, e);
|
|
}
|
|
if (a instanceof b.AVM2.Runtime.Global) {
|
|
return l.from(a.scriptInfo, e);
|
|
}
|
|
if (a instanceof b.AVM2.AS.ASClass) {
|
|
return l.from(a.classInfo, e);
|
|
}
|
|
if (a instanceof b.AVM2.Runtime.ActivationInfo) {
|
|
return l.from(a.methodInfo, e);
|
|
}
|
|
if (a.class) {
|
|
return l.from(a.class.classInfo.instanceInfo, e);
|
|
}
|
|
c(!1, a.toString());
|
|
return l.Any;
|
|
});
|
|
};
|
|
a.prototype.verifyMethod = function(a, b) {
|
|
var c = this._prepareScopeObjects(a, b);
|
|
(new I(a, a.abc.applicationDomain, c)).verify();
|
|
};
|
|
return a;
|
|
}();
|
|
g.Verifier = C;
|
|
})(k.Verifier || (k.Verifier = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
function g(a, b) {
|
|
for (var c = 0;c < a.length;c++) {
|
|
b(a[c]);
|
|
}
|
|
}
|
|
function k(c) {
|
|
var e, f = b.StringUtilities;
|
|
if (c instanceof h) {
|
|
return c.value instanceof d ? c.value.name : c.value;
|
|
}
|
|
if (c instanceof w) {
|
|
return c.name;
|
|
}
|
|
if (c instanceof u) {
|
|
return e = f.concat3("|", c.id, "|"), e;
|
|
}
|
|
if (c instanceof p) {
|
|
return e = f.concat3("{", c.id, "}"), e;
|
|
}
|
|
if (c instanceof r) {
|
|
return 3 === c.type ? (e = f.concat5("[", c.id, "->", c.argument.id, "]"), e) : (e = f.concat3("(", c.id, ")"), e);
|
|
}
|
|
if (c instanceof l) {
|
|
return e = f.concat3("(", c.id, ")"), e;
|
|
}
|
|
if (c instanceof n) {
|
|
return c.id;
|
|
}
|
|
a(c + " " + typeof c);
|
|
}
|
|
var m = b.Debug.assert, d = b.AVM2.ABC.Multiname, a = b.Debug.unexpected, c = b.ObjectUtilities.createEmptyObject;
|
|
(function(a) {
|
|
a[a.NumericProperty = 1] = "NumericProperty";
|
|
a[a.RESOLVED = 2] = "RESOLVED";
|
|
a[a.PRISTINE = 4] = "PRISTINE";
|
|
a[a.IS_METHOD = 8] = "IS_METHOD";
|
|
a[a.AS_CALL = 16] = "AS_CALL";
|
|
})(f.Flags || (f.Flags = {}));
|
|
var n = function() {
|
|
function a() {
|
|
this.id = a.getNextID();
|
|
}
|
|
a.getNextID = function() {
|
|
return a._nextID[a._nextID.length - 1] += 1;
|
|
};
|
|
a.prototype.visitInputs = function(a) {
|
|
};
|
|
a.startNumbering = function() {
|
|
a._nextID.push(0);
|
|
};
|
|
a.stopNumbering = function() {
|
|
a._nextID.pop();
|
|
};
|
|
a.prototype.toString = function(a) {
|
|
if (a) {
|
|
return k(this);
|
|
}
|
|
var b = [];
|
|
this.visitInputs(function(a) {
|
|
b.push(k(a));
|
|
});
|
|
a = k(this) + " = " + this.nodeName.toUpperCase();
|
|
b.length && (a += " " + b.join(", "));
|
|
return a;
|
|
};
|
|
a.prototype.visitInputsNoConstants = function(a) {
|
|
this.visitInputs(function(b) {
|
|
f.isConstant(b) || a(b);
|
|
});
|
|
};
|
|
a.prototype.replaceInput = function(b, c) {
|
|
var h = 0, d;
|
|
for (d in this) {
|
|
var e = this[d];
|
|
e instanceof a && e === b && (this[d] = c, h++);
|
|
e instanceof Array && (h += e.replace(b, c));
|
|
}
|
|
return h;
|
|
};
|
|
a._nextID = [];
|
|
return a;
|
|
}();
|
|
f.Node = n;
|
|
n.prototype.nodeName = "Node";
|
|
var p = function(a) {
|
|
function b() {
|
|
a.call(this);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(n);
|
|
f.Control = p;
|
|
p.prototype.nodeName = "Control";
|
|
var e = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.predecessors = c ? [c] : [];
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
g(this.predecessors, a);
|
|
};
|
|
return b;
|
|
}(p);
|
|
f.Region = e;
|
|
e.prototype.nodeName = "Region";
|
|
e = function(a) {
|
|
function b() {
|
|
a.call(this, null);
|
|
this.control = this;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
g(this.predecessors, a);
|
|
a(this.scope);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.Start = e;
|
|
e.prototype.nodeName = "Start";
|
|
e = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.control = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
};
|
|
return b;
|
|
}(p);
|
|
f.End = e;
|
|
e.prototype.nodeName = "End";
|
|
var q = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this, c);
|
|
this.store = h;
|
|
this.argument = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
a(this.store);
|
|
a(this.argument);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.Stop = q;
|
|
q.prototype.nodeName = "Stop";
|
|
q = function(a) {
|
|
function b(c, h) {
|
|
a.call(this, c);
|
|
this.predicate = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
a(this.predicate);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.If = q;
|
|
q.prototype.nodeName = "If";
|
|
q = function(a) {
|
|
function b(c, h) {
|
|
a.call(this, c);
|
|
this.determinant = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
a(this.determinant);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.Switch = q;
|
|
q.prototype.nodeName = "Switch";
|
|
e = function(a) {
|
|
function b(c) {
|
|
a.call(this, c);
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.Jump = e;
|
|
e.prototype.nodeName = "Jump";
|
|
var l = function(a) {
|
|
function b() {
|
|
a.call(this);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(n);
|
|
f.Value = l;
|
|
l.prototype.nodeName = "Value";
|
|
e = function(a) {
|
|
function b() {
|
|
a.call(this);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.Store = e;
|
|
e.prototype.nodeName = "Store";
|
|
e = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.control = c;
|
|
this.store = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
this.store && a(this.store);
|
|
this.loads && g(this.loads, a);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.StoreDependent = e;
|
|
e.prototype.nodeName = "StoreDependent";
|
|
q = function(a) {
|
|
function b(c, h, d, e, l, n) {
|
|
a.call(this, c, h);
|
|
this.callee = d;
|
|
this.object = e;
|
|
this.args = l;
|
|
this.flags = n;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
this.store && a(this.store);
|
|
this.loads && g(this.loads, a);
|
|
a(this.callee);
|
|
this.object && a(this.object);
|
|
g(this.args, a);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.Call = q;
|
|
q.prototype.nodeName = "Call";
|
|
q = function(a) {
|
|
function b(c, h, d, e) {
|
|
a.call(this, c, h);
|
|
this.callee = d;
|
|
this.args = e;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
this.store && a(this.store);
|
|
this.loads && g(this.loads, a);
|
|
a(this.callee);
|
|
g(this.args, a);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.New = q;
|
|
q.prototype.nodeName = "New";
|
|
q = function(a) {
|
|
function b(c, h, d, e) {
|
|
a.call(this, c, h);
|
|
this.object = d;
|
|
this.name = e;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
this.store && a(this.store);
|
|
this.loads && g(this.loads, a);
|
|
a(this.object);
|
|
a(this.name);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.GetProperty = q;
|
|
q.prototype.nodeName = "GetProperty";
|
|
q = function(a) {
|
|
function b(c, h, d, e, l) {
|
|
a.call(this, c, h);
|
|
this.object = d;
|
|
this.name = e;
|
|
this.value = l;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
this.store && a(this.store);
|
|
this.loads && g(this.loads, a);
|
|
a(this.object);
|
|
a(this.name);
|
|
a(this.value);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.SetProperty = q;
|
|
q.prototype.nodeName = "SetProperty";
|
|
q = function(a) {
|
|
function b(c, h, d, e) {
|
|
a.call(this, c, h);
|
|
this.object = d;
|
|
this.name = e;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
this.store && a(this.store);
|
|
this.loads && g(this.loads, a);
|
|
a(this.object);
|
|
a(this.name);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.DeleteProperty = q;
|
|
q.prototype.nodeName = "DeleteProperty";
|
|
e = function(a) {
|
|
function b(c, h, d, e, l, n) {
|
|
a.call(this, c, h);
|
|
this.object = d;
|
|
this.name = e;
|
|
this.args = l;
|
|
this.flags = n;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
this.store && a(this.store);
|
|
this.loads && g(this.loads, a);
|
|
a(this.object);
|
|
a(this.name);
|
|
g(this.args, a);
|
|
};
|
|
return b;
|
|
}(e);
|
|
f.CallProperty = e;
|
|
e.prototype.nodeName = "CallProperty";
|
|
var u = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.control = this.control = c;
|
|
this.args = h ? [h] : [];
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
g(this.args, a);
|
|
};
|
|
b.prototype.seal = function() {
|
|
this.sealed = !0;
|
|
};
|
|
b.prototype.pushValue = function(a) {
|
|
m(!this.sealed);
|
|
this.args.push(a);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Phi = u;
|
|
u.prototype.nodeName = "Phi";
|
|
var w = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.name = c;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.Variable = w;
|
|
w.prototype.nodeName = "Variable";
|
|
e = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.argument = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.argument);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Copy = e;
|
|
e.prototype.nodeName = "Copy";
|
|
e = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.to = c;
|
|
this.from = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.to);
|
|
a(this.from);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Move = e;
|
|
e.prototype.nodeName = "Move";
|
|
(function(a) {
|
|
a[a.CASE = 0] = "CASE";
|
|
a[a.TRUE = 1] = "TRUE";
|
|
a[a.FALSE = 2] = "FALSE";
|
|
a[a.STORE = 3] = "STORE";
|
|
a[a.SCOPE = 4] = "SCOPE";
|
|
})(f.ProjectionType || (f.ProjectionType = {}));
|
|
var r = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.argument = c;
|
|
this.type = h;
|
|
this.selector = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.argument);
|
|
};
|
|
b.prototype.project = function() {
|
|
return this.argument;
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Projection = r;
|
|
r.prototype.nodeName = "Projection";
|
|
e = function(a) {
|
|
function b(c, h, d, e) {
|
|
a.call(this);
|
|
this.control = c;
|
|
this.condition = h;
|
|
this.left = d;
|
|
this.right = e;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
a(this.condition);
|
|
a(this.left);
|
|
a(this.right);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Latch = e;
|
|
e.prototype.nodeName = "Latch";
|
|
e = function() {
|
|
function a(b, c, h) {
|
|
this.name = b;
|
|
this.evaluate = c;
|
|
this.isBinary = h;
|
|
a.byName[b] = this;
|
|
}
|
|
a.linkOpposites = function(a, b) {
|
|
a.not = b;
|
|
b.not = a;
|
|
};
|
|
a.fromName = function(b) {
|
|
return a.byName[b];
|
|
};
|
|
a.byName = c();
|
|
a.ADD = new a("+", function(a, b) {
|
|
return a + b;
|
|
}, !0);
|
|
a.SUB = new a("-", function(a, b) {
|
|
return a - b;
|
|
}, !0);
|
|
a.MUL = new a("*", function(a, b) {
|
|
return a * b;
|
|
}, !0);
|
|
a.DIV = new a("/", function(a, b) {
|
|
return a / b;
|
|
}, !0);
|
|
a.MOD = new a("%", function(a, b) {
|
|
return a % b;
|
|
}, !0);
|
|
a.AND = new a("&", function(a, b) {
|
|
return a & b;
|
|
}, !0);
|
|
a.OR = new a("|", function(a, b) {
|
|
return a | b;
|
|
}, !0);
|
|
a.XOR = new a("^", function(a, b) {
|
|
return a ^ b;
|
|
}, !0);
|
|
a.LSH = new a("<<", function(a, b) {
|
|
return a << b;
|
|
}, !0);
|
|
a.RSH = new a(">>", function(a, b) {
|
|
return a >> b;
|
|
}, !0);
|
|
a.URSH = new a(">>>", function(a, b) {
|
|
return a >>> b;
|
|
}, !0);
|
|
a.SEQ = new a("===", function(a, b) {
|
|
return a === b;
|
|
}, !0);
|
|
a.SNE = new a("!==", function(a, b) {
|
|
return a !== b;
|
|
}, !0);
|
|
a.EQ = new a("==", function(a, b) {
|
|
return a == b;
|
|
}, !0);
|
|
a.NE = new a("!=", function(a, b) {
|
|
return a != b;
|
|
}, !0);
|
|
a.LE = new a("<=", function(a, b) {
|
|
return a <= b;
|
|
}, !0);
|
|
a.GT = new a(">", function(a, b) {
|
|
return a > b;
|
|
}, !0);
|
|
a.LT = new a("<", function(a, b) {
|
|
return a < b;
|
|
}, !0);
|
|
a.GE = new a(">=", function(a, b) {
|
|
return a >= b;
|
|
}, !0);
|
|
a.PLUS = new a("+", function(a) {
|
|
return+a;
|
|
}, !1);
|
|
a.NEG = new a("-", function(a) {
|
|
return-a;
|
|
}, !1);
|
|
a.TRUE = new a("!!", function(a) {
|
|
return!!a;
|
|
}, !1);
|
|
a.FALSE = new a("!", function(a) {
|
|
return!a;
|
|
}, !1);
|
|
a.TYPE_OF = new a("typeof", function(a) {
|
|
return typeof a;
|
|
}, !1);
|
|
a.BITWISE_NOT = new a("~", function(a) {
|
|
return~a;
|
|
}, !1);
|
|
a.AS_ADD = new a("+", function(a, b) {
|
|
return "string" === typeof a || "string" === typeof b ? String(a) + String(b) : a + b;
|
|
}, !0);
|
|
return a;
|
|
}();
|
|
f.Operator = e;
|
|
e.linkOpposites(e.SEQ, e.SNE);
|
|
e.linkOpposites(e.EQ, e.NE);
|
|
e.linkOpposites(e.TRUE, e.FALSE);
|
|
e = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.operator = c;
|
|
this.left = h;
|
|
this.right = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.left);
|
|
a(this.right);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Binary = e;
|
|
e.prototype.nodeName = "Binary";
|
|
e = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.operator = c;
|
|
this.argument = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.argument);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Unary = e;
|
|
e.prototype.nodeName = "Unary";
|
|
var h = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.value = c;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.Constant = h;
|
|
h.prototype.nodeName = "Constant";
|
|
e = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.name = c;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.GlobalProperty = e;
|
|
e.prototype.nodeName = "GlobalProperty";
|
|
e = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.control = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.This = e;
|
|
e.prototype.nodeName = "This";
|
|
e = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.control = c;
|
|
this.argument = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
a(this.argument);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Throw = e;
|
|
e.prototype.nodeName = "Throw";
|
|
e = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.control = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Arguments = e;
|
|
e.prototype.nodeName = "Arguments";
|
|
e = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.control = c;
|
|
this.index = h;
|
|
this.name = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.Parameter = e;
|
|
e.prototype.nodeName = "Parameter";
|
|
e = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.control = c;
|
|
this.elements = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
g(this.elements, a);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.NewArray = e;
|
|
e.prototype.nodeName = "NewArray";
|
|
e = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.control = c;
|
|
this.properties = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.control);
|
|
g(this.properties, a);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.NewObject = e;
|
|
e.prototype.nodeName = "NewObject";
|
|
e = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.key = c;
|
|
this.value = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.visitInputs = function(a) {
|
|
a(this.key);
|
|
a(this.value);
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.KeyValuePair = e;
|
|
e.prototype.mustFloat = !0;
|
|
e.prototype.nodeName = "KeyValuePair";
|
|
f.nameOf = k;
|
|
})(g.IR || (g.IR = {}));
|
|
})(k.Compiler || (k.Compiler = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
function g(a) {
|
|
return a.id;
|
|
}
|
|
function s(a) {
|
|
return a instanceof f.Phi;
|
|
}
|
|
function m(a) {
|
|
return a instanceof f.Constant && a.value instanceof u;
|
|
}
|
|
function d(a) {
|
|
return s(a) || a instanceof f.Store || p(a, 3);
|
|
}
|
|
function a(a) {
|
|
return a instanceof f.Constant;
|
|
}
|
|
function c(a) {
|
|
return a instanceof f.Control;
|
|
}
|
|
function n(a) {
|
|
return a instanceof f.Value;
|
|
}
|
|
function p(a, b) {
|
|
return a instanceof f.Projection && (!b || a.type === b);
|
|
}
|
|
function e(a) {
|
|
return a instanceof f.Projection ? a.project() : a;
|
|
}
|
|
var q = b.Debug.assert, l = b.Debug.unexpected, u = b.AVM2.ABC.Multiname, w = b.ArrayUtilities.top, r = b.IntegerUtilities.bitCount, h = b.ArrayUtilities.pushUnique, x = b.ArrayUtilities.unique;
|
|
f.isNotPhi = function(a) {
|
|
return!s(a);
|
|
};
|
|
f.isPhi = s;
|
|
f.isScope = function(a) {
|
|
return s(a) || a instanceof f.ASScope || p(a, 4);
|
|
};
|
|
f.isMultinameConstant = m;
|
|
f.isMultiname = function(a) {
|
|
return m(a) || a instanceof f.ASMultiname;
|
|
};
|
|
f.isStore = d;
|
|
f.isConstant = a;
|
|
f.isControlOrNull = function(a) {
|
|
return c(a) || null === a;
|
|
};
|
|
f.isStoreOrNull = function(a) {
|
|
return d(a) || null === a;
|
|
};
|
|
f.isControl = c;
|
|
f.isValueOrNull = function(a) {
|
|
return n(a) || null === a;
|
|
};
|
|
f.isValue = n;
|
|
f.isProjection = p;
|
|
f.Null = new f.Constant(null);
|
|
f.Undefined = new f.Constant(void 0);
|
|
f.True = new f.Constant(!0);
|
|
f.False = new f.Constant(!1);
|
|
var y = function() {
|
|
function a(b, c, h) {
|
|
this.id = b;
|
|
this.nodes = [c, h];
|
|
this.region = c;
|
|
this.successors = [];
|
|
this.predecessors = [];
|
|
}
|
|
a.prototype.pushSuccessorAt = function(a, b) {
|
|
q(a);
|
|
q(!this.successors[b]);
|
|
this.successors[b] = a;
|
|
a.pushPredecessor(this);
|
|
};
|
|
a.prototype.pushSuccessor = function(a, b) {
|
|
q(a);
|
|
this.successors.push(a);
|
|
b && a.pushPredecessor(this);
|
|
};
|
|
a.prototype.pushPredecessor = function(a) {
|
|
q(a);
|
|
this.predecessors.push(a);
|
|
};
|
|
a.prototype.visitNodes = function(a) {
|
|
for (var b = this.nodes, c = 0, h = b.length;c < h;c++) {
|
|
a(b[c]);
|
|
}
|
|
};
|
|
a.prototype.visitSuccessors = function(a) {
|
|
for (var b = this.successors, c = 0, h = b.length;c < h;c++) {
|
|
a(b[c]);
|
|
}
|
|
};
|
|
a.prototype.visitPredecessors = function(a) {
|
|
for (var b = this.predecessors, c = 0, h = b.length;c < h;c++) {
|
|
a(b[c]);
|
|
}
|
|
};
|
|
a.prototype.append = function(a) {
|
|
q(2 <= this.nodes.length);
|
|
q(n(a), a);
|
|
q(!s(a));
|
|
q(0 > this.nodes.indexOf(a));
|
|
a.mustFloat || this.nodes.splice(this.nodes.length - 1, 0, a);
|
|
};
|
|
a.prototype.toString = function() {
|
|
return "B" + this.id + (this.name ? " (" + this.name + ")" : "");
|
|
};
|
|
a.prototype.trace = function(a) {
|
|
a.writeLn(this.toString());
|
|
};
|
|
return a;
|
|
}();
|
|
f.Block = y;
|
|
var G = function() {
|
|
function c(a) {
|
|
this.exit = this.exit = a;
|
|
}
|
|
c.prototype.buildCFG = function() {
|
|
return C.fromDFG(this);
|
|
};
|
|
c.preOrderDepthFirstSearch = function(a, b, c) {
|
|
var h = [];
|
|
a = [a];
|
|
for (var d = a.push.bind(a), e;e = a.pop();) {
|
|
1 !== h[e.id] && (h[e.id] = 1, c(e), a.push(e), b(e, d));
|
|
}
|
|
};
|
|
c.postOrderDepthFirstSearch = function(a, b, c) {
|
|
function h(a) {
|
|
d[a.id] || e.push(a);
|
|
}
|
|
for (var d = [], e = [a];a = w(e);) {
|
|
d[a.id] ? (1 === d[a.id] && (d[a.id] = 2, c(a)), e.pop()) : (d[a.id] = 1, b(a, h));
|
|
}
|
|
};
|
|
c.prototype.forEachInPreOrderDepthFirstSearch = function(b) {
|
|
function c(b) {
|
|
a(b) || (q(b instanceof f.Node), d.push(b));
|
|
}
|
|
for (var h = Array(1024), d = [this.exit], e;e = d.pop();) {
|
|
h[e.id] || (h[e.id] = 1, b && b(e), d.push(e), e.visitInputs(c));
|
|
}
|
|
};
|
|
c.prototype.forEach = function(a, b) {
|
|
(b ? c.postOrderDepthFirstSearch : c.preOrderDepthFirstSearch)(this.exit, function(a, b) {
|
|
a.visitInputsNoConstants(b);
|
|
}, a);
|
|
};
|
|
c.prototype.traceMetrics = function(a) {
|
|
var h = new b.Metrics.Counter(!0);
|
|
c.preOrderDepthFirstSearch(this.exit, function(a, b) {
|
|
a.visitInputsNoConstants(b);
|
|
}, function(a) {
|
|
k.countTimeline(a.nodeName);
|
|
});
|
|
h.trace(a);
|
|
};
|
|
c.prototype.trace = function(a) {
|
|
function b(a) {
|
|
return a instanceof f.Control ? "yellow" : a instanceof f.Phi ? "purple" : a instanceof f.Value ? "green" : "white";
|
|
}
|
|
function c(a) {
|
|
return a instanceof f.Projection ? a.project() : a;
|
|
}
|
|
function h(a) {
|
|
a = c(a);
|
|
e[a.id] || (e[a.id] = !0, a.block && l.push(a.block), d.push(a), a.visitInputsNoConstants(h));
|
|
}
|
|
var d = [], e = {}, l = [];
|
|
h(this.exit);
|
|
a.writeLn("");
|
|
a.enter("digraph DFG {");
|
|
a.writeLn("graph [bgcolor = gray10];");
|
|
a.writeLn("edge [color = white];");
|
|
a.writeLn("node [shape = box, fontname = Consolas, fontsize = 11, color = white, fontcolor = white];");
|
|
a.writeLn("rankdir = BT;");
|
|
l.forEach(function(b) {
|
|
a.enter("subgraph cluster" + b.nodes[0].id + " { bgcolor = gray20;");
|
|
b.visitNodes(function(b) {
|
|
b = c(b);
|
|
a.writeLn("N" + b.id + ";");
|
|
});
|
|
a.leave("}");
|
|
});
|
|
d.forEach(function(c) {
|
|
a.writeLn("N" + c.id + ' [label = "' + c.toString() + '", color = "' + b(c) + '"];');
|
|
});
|
|
d.forEach(function(h) {
|
|
h.visitInputsNoConstants(function(d) {
|
|
d = c(d);
|
|
a.writeLn("N" + h.id + " -> N" + d.id + " [color=" + b(d) + "];");
|
|
});
|
|
});
|
|
a.leave("}");
|
|
a.writeLn("");
|
|
};
|
|
return c;
|
|
}();
|
|
f.DFG = G;
|
|
var I = function() {
|
|
function a() {
|
|
this.entries = [];
|
|
}
|
|
a.prototype.addUse = function(a, b) {
|
|
var c = this.entries[a.id];
|
|
c || (c = this.entries[a.id] = {def:a, uses:[]});
|
|
h(c.uses, b);
|
|
};
|
|
a.prototype.trace = function(a) {
|
|
a.enter("> Uses");
|
|
this.entries.forEach(function(b) {
|
|
a.writeLn(b.def.id + " -> [" + b.uses.map(g).join(", ") + "] " + b.def);
|
|
});
|
|
a.leave("<");
|
|
};
|
|
a.prototype.replace = function(a, b) {
|
|
var c = this.entries[a.id];
|
|
if (0 === c.uses.length) {
|
|
return!1;
|
|
}
|
|
var h = 0;
|
|
c.uses.forEach(function(c) {
|
|
h += c.replaceInput(a, b);
|
|
});
|
|
q(h >= c.uses.length);
|
|
c.uses = [];
|
|
return!0;
|
|
};
|
|
a.prototype.updateUses = function(a, b, c, h) {
|
|
c = c[a.id];
|
|
if (0 === c.uses.length) {
|
|
return!1;
|
|
}
|
|
var d = 0;
|
|
c.uses.forEach(function(c) {
|
|
d += c.replaceInput(a, b);
|
|
});
|
|
q(d >= c.uses.length);
|
|
c.uses = [];
|
|
return!0;
|
|
};
|
|
return a;
|
|
}();
|
|
f.Uses = I;
|
|
var C = function() {
|
|
function c() {
|
|
this.nextBlockID = 0;
|
|
this.blocks = [];
|
|
}
|
|
c.fromDFG = function(a) {
|
|
function b(a) {
|
|
a instanceof f.Projection && (a = a.project());
|
|
q(a instanceof f.End || a instanceof f.Start, a);
|
|
if (!d[a.id]) {
|
|
d[a.id] = !0;
|
|
var c = a.control;
|
|
c instanceof f.Region || (c = a.control = new f.Region(c));
|
|
a = c.block = h.buildBlock(c, a);
|
|
c instanceof f.Start && (h.root = a);
|
|
for (var e = 0;e < c.predecessors.length;e++) {
|
|
var l = c.predecessors[e], n, r = !1;
|
|
l instanceof f.Projection ? (n = l.project(), r = 1 === l.type) : n = l;
|
|
n instanceof f.Region && (n = new f.Jump(l), n = new f.Projection(n, 1), c.predecessors[e] = n, n = n.project(), r = !0);
|
|
b(n);
|
|
var g = n.control.block;
|
|
n instanceof f.Switch ? (q(p(l, 0)), g.pushSuccessorAt(a, l.selector.value)) : r && 0 < g.successors.length ? (g.pushSuccessor(a, !0), g.hasFlippedSuccessors = !0) : g.pushSuccessor(a, !0);
|
|
}
|
|
}
|
|
}
|
|
var h = new c;
|
|
q(a && a instanceof G);
|
|
h.dfg = a;
|
|
var d = [];
|
|
b(a.exit);
|
|
h.splitCriticalEdges();
|
|
h.exit = a.exit.control.block;
|
|
h.computeDominators();
|
|
return h;
|
|
};
|
|
c.prototype.buildRootAndExit = function() {
|
|
q(!this.root && !this.exit);
|
|
0 < this.blocks[0].predecessors.length ? (this.root = new y(this.nextBlockID++), this.blocks.push(this.root), this.root.pushSuccessor(this.blocks[0], !0)) : this.root = this.blocks[0];
|
|
for (var a = [], b = 0;b < this.blocks.length;b++) {
|
|
var c = this.blocks[b];
|
|
0 === c.successors.length && a.push(c);
|
|
}
|
|
if (0 === a.length) {
|
|
l("Must have an exit block.");
|
|
} else {
|
|
if (1 === a.length && a[0] !== this.root) {
|
|
this.exit = a[0];
|
|
} else {
|
|
for (this.exit = new y(this.nextBlockID++), this.blocks.push(this.exit), b = 0;b < a.length;b++) {
|
|
a[b].pushSuccessor(this.exit, !0);
|
|
}
|
|
}
|
|
}
|
|
q(this.root && this.exit);
|
|
q(this.root !== this.exit);
|
|
};
|
|
c.prototype.fromString = function(a, b) {
|
|
function c(a) {
|
|
var b = d[a];
|
|
if (b) {
|
|
return b;
|
|
}
|
|
d[a] = b = new y(h.nextBlockID++);
|
|
b.name = a;
|
|
e.push(b);
|
|
return b;
|
|
}
|
|
var h = this, d = h.blockNames || (h.blockNames = {}), e = h.blocks;
|
|
a.replace(/\ /g, "").split(",").forEach(function(a) {
|
|
a = a.split("->");
|
|
for (var b = null, h = 0;h < a.length;h++) {
|
|
var d = a[h];
|
|
if (b) {
|
|
var e = d;
|
|
c(b).pushSuccessor(c(e), !0);
|
|
} else {
|
|
c(d);
|
|
}
|
|
b = d;
|
|
}
|
|
});
|
|
q(b && d[b]);
|
|
this.root = d[b];
|
|
};
|
|
c.prototype.buildBlock = function(a, b) {
|
|
var c = new y(this.nextBlockID++, a, b);
|
|
this.blocks.push(c);
|
|
return c;
|
|
};
|
|
c.prototype.createBlockSet = function() {
|
|
this.setConstructor || (this.setConstructor = b.BitSets.BitSetFunctor(this.blocks.length));
|
|
return new this.setConstructor;
|
|
};
|
|
c.prototype.computeReversePostOrder = function() {
|
|
if (this.order) {
|
|
return this.order;
|
|
}
|
|
var a = this.order = [];
|
|
this.depthFirstSearch(null, a.push.bind(a));
|
|
a.reverse();
|
|
for (var b = 0;b < a.length;b++) {
|
|
a[b].rpo = b;
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype.depthFirstSearch = function(a, b) {
|
|
function c(d) {
|
|
h.set(d.id);
|
|
a && a(d);
|
|
for (var e = d.successors, l = 0, n = e.length;l < n;l++) {
|
|
var r = e[l];
|
|
h.get(r.id) || c(r);
|
|
}
|
|
b && b(d);
|
|
}
|
|
var h = this.createBlockSet();
|
|
c(this.root);
|
|
};
|
|
c.prototype.computeDominators = function() {
|
|
function a(b) {
|
|
var c;
|
|
if (void 0 !== b.dominatorDepth) {
|
|
return b.dominatorDepth;
|
|
}
|
|
c = b.dominator ? a(b.dominator) + 1 : 0;
|
|
return b.dominatorDepth = c;
|
|
}
|
|
q(0 === this.root.predecessors.length, "Root node " + this.root + " must not have predecessors.");
|
|
for (var b = new Int32Array(this.blocks.length), c = 0;c < b.length;c++) {
|
|
b[c] = -1;
|
|
}
|
|
var h = this.createBlockSet();
|
|
this.depthFirstSearch(function(a) {
|
|
for (var c = a.successors, d = 0, e = c.length;d < e;d++) {
|
|
var l = c[d].id, n = a.id, r = l;
|
|
if (!(0 > b[l])) {
|
|
l = b[l];
|
|
for (h.clearAll();0 <= l;) {
|
|
h.set(l), l = b[l];
|
|
}
|
|
for (;0 <= n && !h.get(n);) {
|
|
n = b[n];
|
|
}
|
|
}
|
|
b[r] = n;
|
|
}
|
|
});
|
|
for (var c = 0, d = this.blocks.length;c < d;c++) {
|
|
this.blocks[c].dominator = this.blocks[b[c]];
|
|
}
|
|
c = 0;
|
|
for (d = this.blocks.length;c < d;c++) {
|
|
a(this.blocks[c]);
|
|
}
|
|
};
|
|
c.prototype.computeLoops = function() {
|
|
function a(d) {
|
|
if (c.get(d.id)) {
|
|
return b.get(d.id) && (d.isLoopHeader || (q(32 > h, "Can't handle too many loops, fall back on BitMaps if it's a problem."), d.isLoopHeader = !0, d.loops = 1 << h, h += 1), q(1 === r(d.loops))), d.loops;
|
|
}
|
|
c.set(d.id);
|
|
b.set(d.id);
|
|
for (var e = 0, l = 0, n = d.successors.length;l < n;l++) {
|
|
e |= a(d.successors[l]);
|
|
}
|
|
d.isLoopHeader && (q(1 === r(d.loops)), e &= ~d.loops);
|
|
d.loops = e;
|
|
b.clear(d.id);
|
|
return e;
|
|
}
|
|
var b = this.createBlockSet(), c = this.createBlockSet(), h = 0, d = a(this.root);
|
|
q(0 === d);
|
|
};
|
|
c.prototype.computeUses = function() {
|
|
k.enterTimeline("computeUses");
|
|
var a = this.dfg, b = new I;
|
|
a.forEachInPreOrderDepthFirstSearch(function(a) {
|
|
a.visitInputs(function(c) {
|
|
b.addUse(c, a);
|
|
});
|
|
});
|
|
k.leaveTimeline();
|
|
return b;
|
|
};
|
|
c.prototype.verify = function() {
|
|
this.computeReversePostOrder().forEach(function(a) {
|
|
a.phis && a.phis.forEach(function(b) {
|
|
q(b.control === a.region);
|
|
q(b.args.length === a.predecessors.length);
|
|
});
|
|
});
|
|
};
|
|
c.prototype.optimizePhis = function() {
|
|
function a(b, c) {
|
|
c = x(c);
|
|
if (1 === c.length) {
|
|
return c[0];
|
|
}
|
|
if (2 === c.length) {
|
|
if (c[0] === b) {
|
|
return c[1];
|
|
}
|
|
if (c[1] === b) {
|
|
return c[0];
|
|
}
|
|
}
|
|
return b;
|
|
}
|
|
var b = [], c = this.computeUses().entries;
|
|
c.forEach(function(a) {
|
|
s(a.def) && b.push(a.def);
|
|
});
|
|
for (var h = 0, d = 0, e = !0;e;) {
|
|
d++, e = !1, b.forEach(function(b) {
|
|
var d = a(b, b.args);
|
|
if (d !== b) {
|
|
var l = c[b.id];
|
|
if (0 === l.uses.length) {
|
|
b = !1;
|
|
} else {
|
|
for (var n = 0, r = l.uses, f = 0, p = r.length;f < p;f++) {
|
|
n += r[f].replaceInput(b, d);
|
|
}
|
|
q(n >= l.uses.length);
|
|
l.uses = [];
|
|
b = !0;
|
|
}
|
|
b && (e = !0, h++);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
c.prototype.splitCriticalEdges = function() {
|
|
for (var a = this.blocks, b = [], c = 0;c < a.length;c++) {
|
|
var h = a[c].successors;
|
|
if (1 < h.length) {
|
|
for (var d = 0;d < h.length;d++) {
|
|
1 < h[d].predecessors.length && b.push({from:a[c], to:h[d]});
|
|
}
|
|
}
|
|
}
|
|
for (var a = b.length, e;e = b.pop();) {
|
|
c = e.from.successors.indexOf(e.to);
|
|
h = e.to.predecessors.indexOf(e.from);
|
|
q(0 <= c && 0 <= h);
|
|
var d = e.to, l = d.region, n = new f.Region(l.predecessors[h]), r = new f.Jump(n), n = this.buildBlock(n, r);
|
|
l.predecessors[h] = new f.Projection(r, 1);
|
|
e = e.from;
|
|
e.successors[c] = n;
|
|
n.pushPredecessor(e);
|
|
n.pushSuccessor(d);
|
|
d.predecessors[h] = n;
|
|
}
|
|
a && q(0 === this.splitCriticalEdges());
|
|
return a;
|
|
};
|
|
c.prototype.allocateVariables = function() {
|
|
function a(b) {
|
|
!(p(b, 3) || b instanceof f.SetProperty) && b instanceof f.Value && (b.variable = new f.Variable("v" + b.id));
|
|
}
|
|
var b = this.computeReversePostOrder();
|
|
b.forEach(function(b) {
|
|
b.nodes.forEach(a);
|
|
b.phis && b.phis.forEach(a);
|
|
});
|
|
for (var c = [], h = 0;h < b.length;h++) {
|
|
var d = b[h], e = d.phis, d = d.predecessors;
|
|
if (e) {
|
|
for (var l = 0;l < e.length;l++) {
|
|
var n = e[l];
|
|
arguments = n.args;
|
|
q(d.length === arguments.length);
|
|
for (var r = 0;r < d.length;r++) {
|
|
var g = d[r], m = arguments[r];
|
|
m.abstract || p(m, 3) || (g = c[g.id] || (c[g.id] = []), m = m.variable || m, n.variable !== m && g.push(new f.Move(n.variable, m)));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var x = this.blocks;
|
|
c.forEach(function(a, b) {
|
|
for (var c = x[b], h = 0;a.length;) {
|
|
for (var d = 0;d < a.length;d++) {
|
|
for (var e = a[d], l = 0;l < a.length;l++) {
|
|
if (d !== l && a[l].from === e.to) {
|
|
e = null;
|
|
break;
|
|
}
|
|
}
|
|
e && (a.splice(d--, 1), c.append(e));
|
|
}
|
|
if (a.length) {
|
|
for (e = a[0], l = new f.Variable("t" + h++), x[b].append(new f.Move(l, e.to)), d = 1;d < a.length;d++) {
|
|
a[d].from === e.to && (a[d].from = l);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
};
|
|
c.prototype.scheduleEarly = function() {
|
|
function b(a) {
|
|
return a.mustNotFloat || a.shouldNotFloat ? !1 : a.mustFloat || a.shouldFloat || a instanceof f.Parameter || a instanceof f.This || a instanceof f.Arguments ? !0 : a instanceof f.Binary || a instanceof f.Unary || a instanceof f.Parameter;
|
|
}
|
|
function c(a) {
|
|
q(!p[a.id], "Already scheduled " + a);
|
|
p[a.id] = !0;
|
|
q(a.control, a);
|
|
b(a) || a.control.block.append(a);
|
|
}
|
|
function h(a, b) {
|
|
q(!a.control, a);
|
|
q(!p[a.id]);
|
|
q(b);
|
|
a.control = b;
|
|
c(a);
|
|
}
|
|
function d(b) {
|
|
var r = [];
|
|
b.visitInputs(function(b) {
|
|
a(b) || n(b) && r.push(e(b));
|
|
});
|
|
for (var g = 0;g < r.length;g++) {
|
|
var q = r[g];
|
|
s(q) || p[q.id] || d(q);
|
|
}
|
|
if (b.control) {
|
|
b instanceof f.End || b instanceof f.Phi || b instanceof f.Start || p[b.id] || c(b);
|
|
} else {
|
|
if (r.length) {
|
|
q = r[0].control;
|
|
for (g = 1;g < r.length;g++) {
|
|
var m = r[g].control;
|
|
q.block.dominatorDepth < m.block.dominatorDepth && (q = m);
|
|
}
|
|
h(b, q);
|
|
} else {
|
|
h(b, l.root.region);
|
|
}
|
|
}
|
|
}
|
|
var l = this, r = this.dfg, p = [], g = [];
|
|
r.forEachInPreOrderDepthFirstSearch(function(a) {
|
|
a instanceof f.Region || a instanceof f.Jump || (a.control && g.push(a), s(a) && a.args.forEach(function(a) {
|
|
b(a) && (a.mustNotFloat = !0);
|
|
}));
|
|
});
|
|
for (var m = 0;m < g.length;m++) {
|
|
var x = g[m];
|
|
if (x instanceof f.Phi) {
|
|
var w = x.control.block;
|
|
(w.phis || (w.phis = [])).push(x);
|
|
}
|
|
x.control && d(x);
|
|
}
|
|
g.forEach(function(a) {
|
|
a = e(a);
|
|
a === r.start || a instanceof f.Region || q(a.control, "Node is not scheduled: " + a);
|
|
});
|
|
};
|
|
c.prototype.trace = function(a) {
|
|
function b(a) {
|
|
h[a.id] || (h[a.id] = !0, d.push(a), a.visitSuccessors(b));
|
|
}
|
|
function c(a) {
|
|
q(a);
|
|
return a === e ? "house" : a === l ? "invhouse" : "box";
|
|
}
|
|
var h = [], d = [], e = this.root, l = this.exit;
|
|
b(e);
|
|
a.writeLn("");
|
|
a.enter("digraph CFG {");
|
|
a.writeLn("graph [bgcolor = gray10];");
|
|
a.writeLn("edge [fontname = Consolas, fontsize = 11, color = white, fontcolor = white];");
|
|
a.writeLn("node [shape = box, fontname = Consolas, fontsize = 11, color = white, fontcolor = white, style = filled];");
|
|
a.writeLn("rankdir = TB;");
|
|
d.forEach(function(b) {
|
|
var h = "";
|
|
void 0 !== b.name && (h += " " + b.name);
|
|
void 0 !== b.rpo && (h += " O: " + b.rpo);
|
|
a.writeLn("B" + b.id + ' [label = "B' + b.id + h + '", fillcolor = "black", shape=' + c(b) + ", style=filled];");
|
|
});
|
|
d.forEach(function(b) {
|
|
b.visitSuccessors(function(c) {
|
|
a.writeLn("B" + b.id + " -> B" + c.id);
|
|
});
|
|
b.dominator && a.writeLn("B" + b.id + " -> B" + b.dominator.id + " [color = orange];");
|
|
b.follow && a.writeLn("B" + b.id + " -> B" + b.follow.id + " [color = purple];");
|
|
});
|
|
a.leave("}");
|
|
a.writeLn("");
|
|
};
|
|
return c;
|
|
}();
|
|
f.CFG = C;
|
|
var E = function() {
|
|
function b() {
|
|
}
|
|
b.prototype.foldUnary = function(b, c) {
|
|
q(b instanceof f.Unary);
|
|
if (a(b.argument)) {
|
|
return new f.Constant(b.operator.evaluate(b.argument.value));
|
|
}
|
|
if (c) {
|
|
var h = this.fold(b.argument, !0);
|
|
if (b.operator === f.Operator.TRUE) {
|
|
return h;
|
|
}
|
|
if (h instanceof f.Unary) {
|
|
if (b.operator === f.Operator.FALSE && h.operator === f.Operator.FALSE) {
|
|
return h.argument;
|
|
}
|
|
} else {
|
|
return new f.Unary(b.operator, h);
|
|
}
|
|
}
|
|
return b;
|
|
};
|
|
b.prototype.foldBinary = function(b, c) {
|
|
q(b instanceof f.Binary);
|
|
return a(b.left) && a(b.right) ? new f.Constant(b.operator.evaluate(b.left.value, b.right.value)) : b;
|
|
};
|
|
b.prototype.fold = function(a, b) {
|
|
return a instanceof f.Unary ? this.foldUnary(a, b) : a instanceof f.Binary ? this.foldBinary(a, b) : a;
|
|
};
|
|
return b;
|
|
}();
|
|
f.PeepholeOptimizer = E;
|
|
})(g.IR || (g.IR = {}));
|
|
})(k.Compiler || (k.Compiler = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(a) {
|
|
F(a instanceof v);
|
|
return a;
|
|
}
|
|
function t(a) {
|
|
return a instanceof v && b.isString(a.value);
|
|
}
|
|
function s(a) {
|
|
return a instanceof v && b.isNumeric(a.value) ? !0 : a.ty && a.ty.isNumeric();
|
|
}
|
|
function m(a, b) {
|
|
return s(a) && s(b) || d(a) && d(b) ? !0 : !1;
|
|
}
|
|
function d(a) {
|
|
return t(a) ? !0 : a.ty && a.ty.isString();
|
|
}
|
|
function a(a) {
|
|
return new v(a);
|
|
}
|
|
function c(a) {
|
|
switch(a) {
|
|
case 161:
|
|
return H.SUB;
|
|
case 162:
|
|
return H.MUL;
|
|
case 163:
|
|
return H.DIV;
|
|
case 164:
|
|
return H.MOD;
|
|
case 165:
|
|
return H.LSH;
|
|
case 166:
|
|
return H.RSH;
|
|
case 167:
|
|
return H.URSH;
|
|
case 168:
|
|
return H.AND;
|
|
case 169:
|
|
return H.OR;
|
|
case 170:
|
|
return H.XOR;
|
|
case 20:
|
|
return H.NE;
|
|
case 26:
|
|
return H.SNE;
|
|
case 19:
|
|
;
|
|
case 171:
|
|
return H.EQ;
|
|
case 25:
|
|
;
|
|
case 172:
|
|
return H.SEQ;
|
|
case 21:
|
|
;
|
|
case 173:
|
|
return H.LT;
|
|
case 22:
|
|
;
|
|
case 174:
|
|
return H.LE;
|
|
case 23:
|
|
;
|
|
case 175:
|
|
return H.GT;
|
|
case 24:
|
|
;
|
|
case 176:
|
|
return H.GE;
|
|
case 144:
|
|
return H.NEG;
|
|
case 196:
|
|
return H.NEG;
|
|
case 197:
|
|
return H.ADD;
|
|
case 198:
|
|
return H.SUB;
|
|
case 199:
|
|
return H.MUL;
|
|
case 17:
|
|
return H.TRUE;
|
|
case 18:
|
|
return H.FALSE;
|
|
case 150:
|
|
return H.FALSE;
|
|
case 151:
|
|
return H.BITWISE_NOT;
|
|
default:
|
|
K(String(a));
|
|
}
|
|
}
|
|
function n(c, h, d) {
|
|
F(b.isString(d));
|
|
d = d.split(".");
|
|
for (var e = 0;e < d.length;e++) {
|
|
h = new g.IR.GetProperty(null, c.store, h, a(d[e])), h.shouldFloat = !0, c.loads.push(h);
|
|
}
|
|
return h;
|
|
}
|
|
function p(a) {
|
|
a = new g.IR.GlobalProperty(a);
|
|
a.mustFloat = !0;
|
|
return a;
|
|
}
|
|
function e(a, b) {
|
|
var c = new Z(a, b);
|
|
da && (c = da.fold(c));
|
|
return c;
|
|
}
|
|
function q(a, c, h) {
|
|
var d = new ea(a, c, h);
|
|
c.ty && c.ty !== b.AVM2.Verifier.Type.Any && c.ty === h.ty && (a === H.EQ ? d.operator = H.SEQ : a === H.NE && (d.operator = H.SNE));
|
|
da && (d = da.fold(d));
|
|
return d;
|
|
}
|
|
function l(b) {
|
|
return q(H.OR, b, a(0));
|
|
}
|
|
function u(b) {
|
|
return q(H.URSH, b, a(0));
|
|
}
|
|
function w(a) {
|
|
return s(a) ? a : e(H.PLUS, a);
|
|
}
|
|
function r(a) {
|
|
return e(H.FALSE, e(H.FALSE, a));
|
|
}
|
|
function h(a) {
|
|
a.shouldNotFloat = !0;
|
|
return a;
|
|
}
|
|
function x(a, b) {
|
|
return new X(null, null, a, null, b, 4);
|
|
}
|
|
function y(a, b) {
|
|
return x(p(a), [b]);
|
|
}
|
|
function G(a) {
|
|
return t(a) ? a : x(p("String"), [a]);
|
|
}
|
|
function I(a) {
|
|
return t(a) ? a : W(a) ? new v(z.asCoerceString(f(a).value)) : x(p("asCoerceString"), [a]);
|
|
}
|
|
function C(a) {
|
|
F(a instanceof E);
|
|
return ma[E.getQualifiedName(a)];
|
|
}
|
|
var E = b.AVM2.ABC.Multiname, O = b.AVM2.ABC.InstanceInfo, K = b.Debug.notImplemented, F = b.Debug.assert, J = b.ArrayUtilities.top, A = b.ArrayUtilities.unique, B = b.ObjectUtilities.createEmptyObject, z = b.AVM2.Runtime, P = b.AVM2.Runtime.GlobalMultinameResolver, D = g.IR.Node, L = g.IR.Start, M = g.IR.Region, V = g.IR.Null, Q = g.IR.Undefined, U = g.IR.True, S = g.IR.False, aa = g.IR.This, $ = g.IR.Projection, ea = g.IR.Binary, Z = g.IR.Unary, v = g.IR.Constant, X = g.IR.Call, ba = g.IR.Phi,
|
|
R = g.IR.Stop, H = g.IR.Operator, Y = g.IR.Parameter, ga = g.IR.NewArray, ca = g.IR.NewObject, ka = g.IR.KeyValuePair, W = g.IR.isConstant, ha = new b.IndentingWriter, da = new g.IR.PeepholeOptimizer, ja = function() {
|
|
function a(b) {
|
|
"undefined" === typeof b && (b = 0);
|
|
this.id = a._nextID += 1;
|
|
this.index = b;
|
|
this.local = [];
|
|
this.stack = [];
|
|
this.scope = [];
|
|
this.store = Q;
|
|
this.loads = [];
|
|
this.saved = Q;
|
|
}
|
|
a.prototype.clone = function(b) {
|
|
var c = new a;
|
|
c.index = void 0 !== b ? b : this.index;
|
|
c.local = this.local.slice(0);
|
|
c.stack = this.stack.slice(0);
|
|
c.scope = this.scope.slice(0);
|
|
c.loads = this.loads.slice(0);
|
|
c.saved = this.saved;
|
|
c.store = this.store;
|
|
return c;
|
|
};
|
|
a.prototype.matches = function(a) {
|
|
return this.stack.length === a.stack.length && this.scope.length === a.scope.length && this.local.length === a.local.length;
|
|
};
|
|
a.prototype.makeLoopPhis = function(b, c) {
|
|
function h(a) {
|
|
a = new ba(b, a);
|
|
a.isLoop = !0;
|
|
return a;
|
|
}
|
|
var d = new a;
|
|
F(b);
|
|
d.index = this.index;
|
|
d.local = this.local.map(function(a, b) {
|
|
return c[b] ? h(a) : a;
|
|
});
|
|
d.stack = this.stack.map(h);
|
|
d.scope = this.scope.map(h);
|
|
d.loads = this.loads.slice(0);
|
|
d.saved = this.saved;
|
|
d.store = h(this.store);
|
|
return d;
|
|
};
|
|
a.tryOptimizePhi = function(a) {
|
|
if (a instanceof ba) {
|
|
if (a.isLoop) {
|
|
return a;
|
|
}
|
|
var b = A(a.args);
|
|
if (1 === b.length) {
|
|
return a.seal(), k.countTimeline("Builder: OptimizedPhi"), b[0];
|
|
}
|
|
}
|
|
return a;
|
|
};
|
|
a.prototype.optimize = function() {
|
|
this.local = this.local.map(a.tryOptimizePhi);
|
|
this.stack = this.stack.map(a.tryOptimizePhi);
|
|
this.scope = this.scope.map(a.tryOptimizePhi);
|
|
this.saved = a.tryOptimizePhi(this.saved);
|
|
this.store = a.tryOptimizePhi(this.store);
|
|
};
|
|
a.mergeValue = function(a, b, c) {
|
|
a = b instanceof ba && b.control === a ? b : new ba(a, b);
|
|
a.pushValue(c);
|
|
return a;
|
|
};
|
|
a.mergeValues = function(b, c, h) {
|
|
for (var d = 0;d < c.length;d++) {
|
|
c[d] = a.mergeValue(b, c[d], h[d]);
|
|
}
|
|
};
|
|
a.prototype.merge = function(b, c) {
|
|
F(b);
|
|
F(this.matches(c), this + " !== " + c);
|
|
a.mergeValues(b, this.local, c.local);
|
|
a.mergeValues(b, this.stack, c.stack);
|
|
a.mergeValues(b, this.scope, c.scope);
|
|
this.store = a.mergeValue(b, this.store, c.store);
|
|
this.store.abstract = !0;
|
|
};
|
|
a.prototype.trace = function(a) {
|
|
a.writeLn(this.toString());
|
|
};
|
|
a.toBriefString = function(a) {
|
|
return a instanceof D ? a.toString(!0) : a;
|
|
};
|
|
a.prototype.toString = function() {
|
|
return "<" + String(this.id + " @ " + this.index).padRight(" ", 10) + (" M: " + a.toBriefString(this.store)).padRight(" ", 14) + (" X: " + a.toBriefString(this.saved)).padRight(" ", 14) + (" $: " + this.scope.map(a.toBriefString).join(", ")).padRight(" ", 20) + (" L: " + this.local.map(a.toBriefString).join(", ")).padRight(" ", 40) + (" S: " + this.stack.map(a.toBriefString).join(", ")).padRight(" ", 60);
|
|
};
|
|
a._nextID = 0;
|
|
return a;
|
|
}(), N = y.bind(null, "asCoerceObject"), ma = B();
|
|
ma[E.Int] = l;
|
|
ma[E.Uint] = u;
|
|
ma[E.Number] = w;
|
|
ma[E.String] = I;
|
|
ma[E.Object] = N;
|
|
ma[E.Boolean] = r;
|
|
var T = B();
|
|
T[E.Int] = l;
|
|
T[E.Uint] = u;
|
|
T[E.Number] = y.bind(null, "Number");
|
|
T[E.String] = y.bind(null, "String");
|
|
T[E.Object] = y.bind(null, "Object");
|
|
T[E.Boolean] = y.bind(null, "Boolean");
|
|
var oa = y.bind(null, "Object"), pa = function() {
|
|
function d(a, b, c, h) {
|
|
this.builder = a;
|
|
this.region = b;
|
|
this.block = c;
|
|
this.state = h;
|
|
this.abc = a.abc;
|
|
this.methodInfoConstant = a.methodInfoConstant;
|
|
this.bytecodes = a.methodInfo.analysis.bytecodes;
|
|
this.constantPool = a.abc.constantPool;
|
|
this.traceBuilder = a.traceBuilder;
|
|
this.methodInfo = a.methodInfo;
|
|
}
|
|
d.prototype.popMultiname = function() {
|
|
var b = this.constantPool.multinames[this.bc.index], c, h = b.flags;
|
|
c = b.isRuntimeName() ? this.state.stack.pop() : a(b.name);
|
|
b.isRuntimeNamespace() ? (b = new ga(this.region, [this.state.stack.pop()]), F(!(b instanceof g.IR.GetProperty), "Cannot float node : " + b), b.shouldFloat = !0) : b = a(b.namespaces);
|
|
return new g.IR.ASMultiname(b, c, h);
|
|
};
|
|
d.prototype.setIfStops = function(a) {
|
|
F(!this.stops);
|
|
a = new g.IR.If(this.region, a);
|
|
this.stops = [{control:new $(a, 2), target:this.bytecodes[this.bc.position + 1], state:this.state}, {control:new $(a, 1), target:this.bc.target, state:this.state}];
|
|
};
|
|
d.prototype.setJumpStop = function() {
|
|
F(!this.stops);
|
|
this.stops = [{control:this.region, target:this.bc.target, state:this.state}];
|
|
};
|
|
d.prototype.setThrowStop = function() {
|
|
F(!this.stops);
|
|
this.stops = [];
|
|
};
|
|
d.prototype.setReturnStop = function() {
|
|
F(!this.stops);
|
|
this.stops = [];
|
|
};
|
|
d.prototype.setSwitchStops = function(b) {
|
|
F(!this.stops);
|
|
if (2 < this.bc.targets.length) {
|
|
this.stops = [];
|
|
b = new g.IR.Switch(this.region, b);
|
|
for (var c = 0;c < this.bc.targets.length;c++) {
|
|
this.stops.push({control:new $(b, 0, a(c)), target:this.bc.targets[c], state:this.state});
|
|
}
|
|
} else {
|
|
F(2 === this.bc.targets.length), b = q(H.SEQ, b, a(0)), b = new g.IR.If(this.region, b), this.stops = [{control:new $(b, 2), target:this.bc.targets[1], state:this.state}, {control:new $(b, 1), target:this.bc.targets[0], state:this.state}];
|
|
}
|
|
};
|
|
d.prototype.savedScope = function() {
|
|
return this.state.saved;
|
|
};
|
|
d.prototype.topScope = function(a) {
|
|
var b = this.state.scope;
|
|
if (void 0 !== a) {
|
|
if (a < b.length) {
|
|
return b[b.length - 1 - a];
|
|
}
|
|
if (a === b.length) {
|
|
return this.savedScope();
|
|
}
|
|
var c = this.savedScope();
|
|
a -= b.length;
|
|
for (b = 0;b < a;b++) {
|
|
c = n(this.state, c, "parent");
|
|
}
|
|
return c;
|
|
}
|
|
return 0 < b.length ? J(b) : this.savedScope();
|
|
};
|
|
d.prototype.getGlobalScope = function() {
|
|
var b = this.bc.ti;
|
|
return b && b.object ? a(b.object) : new g.IR.ASGlobal(null, this.savedScope());
|
|
};
|
|
d.prototype.getScopeObject = function(a) {
|
|
return a instanceof g.IR.ASScope ? a.object : n(this.state, a, "object");
|
|
};
|
|
d.prototype.findProperty = function(c, h) {
|
|
var d = this.bc.ti, e = new g.IR.ASFindProperty(this.region, this.state.store, this.topScope(), c, this.methodInfoConstant, h);
|
|
if (d) {
|
|
if (d.object) {
|
|
return d.object instanceof b.AVM2.Runtime.Global && !d.object.scriptInfo.executing ? e : a(d.object);
|
|
}
|
|
if (void 0 !== d.scopeDepth) {
|
|
return this.getScopeObject(this.topScope(d.scopeDepth));
|
|
}
|
|
}
|
|
return e;
|
|
};
|
|
d.prototype.coerce = function(a, b) {
|
|
var c = C(a);
|
|
return c ? c(b) : b;
|
|
};
|
|
d.prototype.store = function(a) {
|
|
var b = this.state;
|
|
b.store = new $(a, 3);
|
|
a.loads = b.loads.slice(0);
|
|
b.loads.length = 0;
|
|
return a;
|
|
};
|
|
d.prototype.load = function(a) {
|
|
this.state.loads.push(a);
|
|
return a;
|
|
};
|
|
d.prototype.call = function(a, b, c) {
|
|
return this.store(new X(this.region, this.state.store, a, b, c, 4));
|
|
};
|
|
d.prototype.callCall = function(a, b, c) {
|
|
return this.store(new X(this.region, this.state.store, a, b, c, 16));
|
|
};
|
|
d.prototype.callProperty = function(b, c, h, d) {
|
|
var e = this.bc.ti, l = this.region, n = this.state;
|
|
if (e && e.trait) {
|
|
if (e.trait.isMethod()) {
|
|
return e = e.trait.holder instanceof O && e.trait.holder.isInterface() ? E.getPublicQualifiedName(E.getName(e.trait.name)) : E.getQualifiedName(e.trait.name), e = z.VM_OPEN_METHOD_PREFIX + e, this.store(new g.IR.CallProperty(l, n.store, b, a(e), h, 4));
|
|
}
|
|
if (e.trait.isClass()) {
|
|
c = e.trait.name;
|
|
F(c instanceof E);
|
|
if (c = T[E.getQualifiedName(c)]) {
|
|
return c(h[0]);
|
|
}
|
|
e = E.getQualifiedName(e.trait.name);
|
|
return this.store(new g.IR.CallProperty(l, n.store, b, a(e), h, 16));
|
|
}
|
|
}
|
|
return(e = this.resolveMultinameGlobally(c)) ? this.store(new g.IR.ASCallProperty(l, n.store, b, a(E.getQualifiedName(e)), h, 6, d)) : this.store(new g.IR.ASCallProperty(l, n.store, b, c, h, 4, d));
|
|
};
|
|
d.prototype.getProperty = function(b, c, h) {
|
|
var d = this.bc.ti, e = this.region, l = this.state;
|
|
F(c instanceof g.IR.ASMultiname);
|
|
h = !!h;
|
|
if (d && d.trait) {
|
|
if (d.trait.isConst() && d.trait.hasDefaultValue) {
|
|
return a(d.trait.value);
|
|
}
|
|
b = new g.IR.GetProperty(e, l.store, b, a(E.getQualifiedName(d.trait.name)));
|
|
return d.trait.isGetter() ? this.store(b) : this.load(b);
|
|
}
|
|
if (s(c.name)) {
|
|
return this.store(new g.IR.ASGetProperty(e, l.store, b, c, 1));
|
|
}
|
|
if (d = this.resolveMultinameGlobally(c)) {
|
|
return this.store(new g.IR.ASGetProperty(e, l.store, b, a(E.getQualifiedName(d)), 2 | (h ? 8 : 0)));
|
|
}
|
|
k.countTimeline("Compiler: Slow ASGetProperty");
|
|
return this.store(new g.IR.ASGetProperty(e, l.store, b, c, h ? 8 : 0));
|
|
};
|
|
d.prototype.setProperty = function(b, c, h) {
|
|
var d = this.bc.ti, e = this.region, l = this.state;
|
|
F(c instanceof g.IR.ASMultiname);
|
|
if (d && d.trait) {
|
|
(c = d.trait.typeName ? C(d.trait.typeName) : null) && (h = c(h)), this.store(new g.IR.SetProperty(e, l.store, b, a(E.getQualifiedName(d.trait.name)), h));
|
|
} else {
|
|
if (s(c.name)) {
|
|
return this.store(new g.IR.ASSetProperty(e, l.store, b, c, h, 1));
|
|
}
|
|
this.resolveMultinameGlobally(c);
|
|
return this.store(new g.IR.ASSetProperty(e, l.store, b, c, h, 0));
|
|
}
|
|
};
|
|
d.prototype.callSuper = function(b, c, h, d) {
|
|
var e = this.bc.ti, l = this.region, n = this.state;
|
|
return e && e.trait && e.trait.isMethod() && e.baseClass ? (b = z.VM_OPEN_METHOD_PREFIX + E.getQualifiedName(e.trait.name), e = this.getJSProperty(a(e.baseClass), "traitsPrototype." + b), this.call(e, c, d)) : this.store(new g.IR.ASCallSuper(l, n.store, c, h, d, 4, b));
|
|
};
|
|
d.prototype.getSuper = function(b, c, h) {
|
|
var d = this.bc.ti, e = this.region, l = this.state;
|
|
return d && d.trait && d.trait.isGetter() && d.baseClass ? (b = z.VM_OPEN_GET_METHOD_PREFIX + E.getQualifiedName(d.trait.name), d = this.getJSProperty(a(d.baseClass), "traitsPrototype." + b), this.call(d, c, [])) : this.store(new g.IR.ASGetSuper(e, l.store, c, h, b));
|
|
};
|
|
d.prototype.setSuper = function(b, c, h, d) {
|
|
var e = this.bc.ti, l = this.region, n = this.state;
|
|
e && e.trait && e.trait.isSetter() && e.baseClass ? (b = z.VM_OPEN_SET_METHOD_PREFIX + E.getQualifiedName(e.trait.name), e = this.getJSProperty(a(e.baseClass), "traitsPrototype." + b), this.call(e, c, [d])) : this.store(new g.IR.ASSetSuper(l, n.store, c, h, d, b));
|
|
};
|
|
d.prototype.constructSuper = function(b, c, h) {
|
|
var d = this.bc.ti;
|
|
if (d) {
|
|
if (d.noCallSuperNeeded) {
|
|
return;
|
|
}
|
|
if (d.baseClass) {
|
|
b = this.getJSProperty(a(d.baseClass), "instanceConstructorNoInitialize");
|
|
this.call(b, c, h);
|
|
return;
|
|
}
|
|
}
|
|
b = this.getJSProperty(b, "object.baseClass.instanceConstructorNoInitialize");
|
|
this.call(b, c, h);
|
|
};
|
|
d.prototype.getSlot = function(b, c) {
|
|
var h = this.bc.ti, d = this.region, e = this.state;
|
|
if (h) {
|
|
var l = h.trait;
|
|
if (l) {
|
|
if (l.isConst() && h.trait.hasDefaultValue) {
|
|
return a(l.value);
|
|
}
|
|
h = E.getQualifiedName(l.name);
|
|
return this.store(new g.IR.GetProperty(d, e.store, b, a(h)));
|
|
}
|
|
}
|
|
return this.store(new g.IR.ASGetSlot(null, e.store, b, c));
|
|
};
|
|
d.prototype.setSlot = function(b, c, h) {
|
|
var d = this.bc.ti, e = this.region, l = this.state;
|
|
if (d && (d = d.trait)) {
|
|
c = E.getQualifiedName(d.name);
|
|
this.store(new g.IR.SetProperty(e, l.store, b, a(c), h));
|
|
return;
|
|
}
|
|
this.store(new g.IR.ASSetSlot(e, l.store, b, c, h));
|
|
};
|
|
d.prototype.resolveMultinameGlobally = function(a) {
|
|
var c = a.namespaces, h = a.name;
|
|
if (b.AVM2.Runtime.globalMultinameAnalysis.value) {
|
|
if (W(c) && W(h) && !a.isAttribute()) {
|
|
if (!b.isNumeric(h.value) && b.isString(h.value) && h.value) {
|
|
return P.resolveMultiname(new E(c.value, h.value, a.flags));
|
|
}
|
|
k.countTimeline("GlobalMultinameResolver: Cannot resolve numeric or any names.");
|
|
} else {
|
|
k.countTimeline("GlobalMultinameResolver: Cannot resolve runtime multiname or attribute.");
|
|
}
|
|
}
|
|
};
|
|
d.prototype.getJSProperty = function(a, b) {
|
|
return n(this.state, a, b);
|
|
};
|
|
d.prototype.setJSProperty = function(b, c, h) {
|
|
this.store(new g.IR.SetProperty(null, this.state.store, b, a(c), h));
|
|
};
|
|
d.prototype.simplifyName = function(b) {
|
|
return b instanceof v && b.value instanceof E && E.isQName(b.value) ? a(E.getQualifiedName(b.value)) : b;
|
|
};
|
|
d.prototype.getDescendants = function(a, b) {
|
|
var c = this.region, h = this.state;
|
|
b = this.simplifyName(b);
|
|
return new g.IR.ASGetDescendants(c, h.store, a, b);
|
|
};
|
|
d.prototype.truthyCondition = function(a) {
|
|
var b = this.state.stack, c;
|
|
a.isBinary && (c = b.pop());
|
|
b = b.pop();
|
|
a = c ? q(a, b, c) : e(a, b);
|
|
da && (a = da.fold(a, !0));
|
|
return a;
|
|
};
|
|
d.prototype.negatedTruthyCondition = function(a) {
|
|
a = e(H.FALSE, this.truthyCondition(a));
|
|
da && (a = da.fold(a, !0));
|
|
return a;
|
|
};
|
|
d.prototype.pushExpression = function(a, b) {
|
|
var c = this.state.stack, h;
|
|
a.isBinary ? (h = c.pop(), c = c.pop(), b && (h = l(h), c = l(c)), this.push(q(a, c, h))) : (c = c.pop(), b && (c = l(c)), this.push(e(a, c)));
|
|
};
|
|
d.prototype.push = function(a) {
|
|
var b = this.bc;
|
|
F(a instanceof g.IR.Node);
|
|
b.ti && !a.ty && (a.ty = b.ti.type);
|
|
this.state.stack.push(a);
|
|
};
|
|
d.prototype.pushLocal = function(a) {
|
|
this.push(this.state.local[a]);
|
|
};
|
|
d.prototype.popLocal = function(a) {
|
|
var b = this.state;
|
|
b.local[a] = h(b.stack.pop());
|
|
};
|
|
d.prototype.build = function() {
|
|
function d() {
|
|
return y.pop();
|
|
}
|
|
function e(a) {
|
|
return b.ArrayUtilities.popMany(y, a);
|
|
}
|
|
var n = this.block, f = this.state, s = this.state.local, y = this.state.stack, t = this.state.scope, C = this.region, O = this.bytecodes, z, B, v, N = this.push.bind(this);
|
|
this.stops = null;
|
|
this.traceBuilder && (ha.writeLn("Processing Region: " + C + ", Block: " + n.bid), ha.enter(("> state: " + C.entryState.toString()).padRight(" ", 100)));
|
|
for (var J = n.position, P = n.end.position;J <= P;J++) {
|
|
this.bc = n = O[J];
|
|
var A = n.op;
|
|
f.index = J;
|
|
switch(A) {
|
|
case 3:
|
|
this.store(new g.IR.Throw(C, d()));
|
|
this.builder.stopPoints.push({region:C, store:f.store, value:Q});
|
|
this.setThrowStop();
|
|
break;
|
|
case 98:
|
|
this.pushLocal(n.index);
|
|
break;
|
|
case 208:
|
|
;
|
|
case 209:
|
|
;
|
|
case 210:
|
|
;
|
|
case 211:
|
|
this.pushLocal(A - 208);
|
|
break;
|
|
case 99:
|
|
this.popLocal(n.index);
|
|
break;
|
|
case 212:
|
|
;
|
|
case 213:
|
|
;
|
|
case 214:
|
|
;
|
|
case 215:
|
|
this.popLocal(A - 212);
|
|
break;
|
|
case 28:
|
|
;
|
|
case 48:
|
|
t.push(new g.IR.ASScope(this.topScope(), d(), 28 === A));
|
|
break;
|
|
case 29:
|
|
t.pop();
|
|
break;
|
|
case 100:
|
|
N(this.getGlobalScope());
|
|
break;
|
|
case 101:
|
|
N(this.getScopeObject(f.scope[n.index]));
|
|
break;
|
|
case 94:
|
|
;
|
|
case 93:
|
|
N(this.findProperty(this.popMultiname(), 93 === A));
|
|
break;
|
|
case 102:
|
|
v = this.popMultiname();
|
|
B = d();
|
|
N(this.getProperty(B, v, !1));
|
|
break;
|
|
case 89:
|
|
v = this.popMultiname();
|
|
B = d();
|
|
N(this.getDescendants(B, v));
|
|
break;
|
|
case 96:
|
|
v = this.popMultiname();
|
|
N(this.getProperty(this.findProperty(v, !0), v, !1));
|
|
break;
|
|
case 104:
|
|
;
|
|
case 97:
|
|
z = d();
|
|
v = this.popMultiname();
|
|
B = d();
|
|
this.setProperty(B, v, z);
|
|
break;
|
|
case 106:
|
|
v = this.popMultiname();
|
|
B = d();
|
|
N(this.store(new g.IR.ASDeleteProperty(C, f.store, B, v)));
|
|
break;
|
|
case 108:
|
|
B = d();
|
|
N(this.getSlot(B, a(n.index)));
|
|
break;
|
|
case 109:
|
|
z = d();
|
|
B = d();
|
|
this.setSlot(B, a(n.index), z);
|
|
break;
|
|
case 4:
|
|
v = this.popMultiname();
|
|
B = d();
|
|
N(this.getSuper(this.savedScope(), B, v));
|
|
break;
|
|
case 5:
|
|
z = d();
|
|
v = this.popMultiname();
|
|
B = d();
|
|
this.setSuper(this.savedScope(), B, v, z);
|
|
break;
|
|
case 241:
|
|
;
|
|
case 240:
|
|
break;
|
|
case 64:
|
|
N(x(this.builder.createFunctionCallee, [a(this.abc.methods[n.index]), this.topScope(), a(!0)]));
|
|
break;
|
|
case 65:
|
|
z = e(n.argCount);
|
|
B = d();
|
|
v = d();
|
|
N(this.callCall(v, B, z));
|
|
break;
|
|
case 70:
|
|
;
|
|
case 79:
|
|
;
|
|
case 76:
|
|
z = e(n.argCount);
|
|
v = this.popMultiname();
|
|
B = d();
|
|
z = this.callProperty(B, v, z, 76 === A);
|
|
79 !== A && N(z);
|
|
break;
|
|
case 69:
|
|
;
|
|
case 78:
|
|
v = this.popMultiname();
|
|
z = e(n.argCount);
|
|
B = d();
|
|
z = this.callSuper(this.savedScope(), B, v, z);
|
|
78 !== A && N(z);
|
|
break;
|
|
case 66:
|
|
z = e(n.argCount);
|
|
B = d();
|
|
N(this.store(new g.IR.ASNew(C, f.store, B, z)));
|
|
break;
|
|
case 73:
|
|
z = e(n.argCount);
|
|
B = d();
|
|
this.constructSuper(this.savedScope(), B, z);
|
|
break;
|
|
case 74:
|
|
z = e(n.argCount);
|
|
v = this.popMultiname();
|
|
B = d();
|
|
v = this.getProperty(B, v, !1);
|
|
N(this.store(new g.IR.ASNew(C, f.store, v, z)));
|
|
break;
|
|
case 128:
|
|
if (n.ti && n.ti.noCoercionNeeded) {
|
|
k.countTimeline("Compiler: NoCoercionNeeded");
|
|
break;
|
|
} else {
|
|
k.countTimeline("Compiler: CoercionNeeded");
|
|
}
|
|
z = d();
|
|
N(this.coerce(this.constantPool.multinames[n.index], z));
|
|
break;
|
|
case 131:
|
|
;
|
|
case 115:
|
|
N(l(d()));
|
|
break;
|
|
case 136:
|
|
;
|
|
case 116:
|
|
N(u(d()));
|
|
break;
|
|
case 132:
|
|
;
|
|
case 117:
|
|
N(w(d()));
|
|
break;
|
|
case 129:
|
|
;
|
|
case 118:
|
|
N(r(d()));
|
|
break;
|
|
case 120:
|
|
N(this.call(p("checkFilter"), null, [d()]));
|
|
break;
|
|
case 130:
|
|
break;
|
|
case 133:
|
|
N(I(d()));
|
|
break;
|
|
case 112:
|
|
N(G(d()));
|
|
break;
|
|
case 134:
|
|
if (n.ti && n.ti.noCoercionNeeded) {
|
|
k.countTimeline("Compiler: NoCoercionNeeded");
|
|
break;
|
|
} else {
|
|
k.countTimeline("Compiler: CoercionNeeded");
|
|
}
|
|
z = d();
|
|
B = this.constantPool.multinames[n.index];
|
|
v = new g.IR.ASMultiname(a(B.namespaces), a(B.name), B.flags);
|
|
B = this.getProperty(this.findProperty(v, !1), v);
|
|
N(this.call(p("asAsType"), null, [B, z]));
|
|
break;
|
|
case 135:
|
|
B = d();
|
|
z = d();
|
|
N(this.call(p("asAsType"), null, [B, z]));
|
|
break;
|
|
case 72:
|
|
;
|
|
case 71:
|
|
z = Q;
|
|
72 === A && (z = d(), this.methodInfo.returnType && (n.ti && n.ti.noCoercionNeeded || (z = this.coerce(this.methodInfo.returnType, z))));
|
|
this.builder.stopPoints.push({region:C, store:f.store, value:z});
|
|
this.setReturnStop();
|
|
break;
|
|
case 30:
|
|
;
|
|
case 35:
|
|
z = d();
|
|
B = d();
|
|
N(new g.IR.CallProperty(C, f.store, B, a(30 === A ? "asNextName" : "asNextValue"), [z], 4));
|
|
break;
|
|
case 50:
|
|
z = new g.IR.ASNewHasNext2;
|
|
this.setJSProperty(z, "object", s[n.object]);
|
|
this.setJSProperty(z, "index", s[n.index]);
|
|
this.store(new g.IR.CallProperty(C, f.store, oa(s[n.object]), a("asHasNext2"), [z], 4));
|
|
s[n.object] = this.getJSProperty(z, "object");
|
|
N(s[n.index] = this.getJSProperty(z, "index"));
|
|
break;
|
|
case 32:
|
|
N(V);
|
|
break;
|
|
case 33:
|
|
N(Q);
|
|
break;
|
|
case 38:
|
|
N(U);
|
|
break;
|
|
case 39:
|
|
N(S);
|
|
break;
|
|
case 40:
|
|
N(a(NaN));
|
|
break;
|
|
case 34:
|
|
K(String(n));
|
|
break;
|
|
case 36:
|
|
;
|
|
case 37:
|
|
N(a(n.value));
|
|
break;
|
|
case 44:
|
|
N(a(this.constantPool.strings[n.index]));
|
|
break;
|
|
case 45:
|
|
N(a(this.constantPool.ints[n.index]));
|
|
break;
|
|
case 46:
|
|
N(a(this.constantPool.uints[n.index]));
|
|
break;
|
|
case 47:
|
|
N(a(this.constantPool.doubles[n.index]));
|
|
break;
|
|
case 41:
|
|
d();
|
|
break;
|
|
case 42:
|
|
z = h(d());
|
|
N(z);
|
|
N(z);
|
|
break;
|
|
case 43:
|
|
f.stack.push(d(), d());
|
|
break;
|
|
case 239:
|
|
;
|
|
case 240:
|
|
;
|
|
case 241:
|
|
break;
|
|
case 16:
|
|
this.setJumpStop();
|
|
break;
|
|
case 12:
|
|
this.setIfStops(this.negatedTruthyCondition(H.LT));
|
|
break;
|
|
case 15:
|
|
this.setIfStops(this.negatedTruthyCondition(H.GE));
|
|
break;
|
|
case 14:
|
|
this.setIfStops(this.negatedTruthyCondition(H.GT));
|
|
break;
|
|
case 13:
|
|
this.setIfStops(this.negatedTruthyCondition(H.LE));
|
|
break;
|
|
case 24:
|
|
;
|
|
case 23:
|
|
;
|
|
case 22:
|
|
;
|
|
case 21:
|
|
;
|
|
case 17:
|
|
;
|
|
case 18:
|
|
;
|
|
case 19:
|
|
;
|
|
case 20:
|
|
;
|
|
case 25:
|
|
;
|
|
case 26:
|
|
this.setIfStops(this.truthyCondition(c(A)));
|
|
break;
|
|
case 27:
|
|
this.setSwitchStops(d());
|
|
break;
|
|
case 160:
|
|
B = d();
|
|
z = d();
|
|
v = m(z, B) ? H.ADD : b.AVM2.Runtime.useAsAdd ? H.AS_ADD : H.ADD;
|
|
N(q(v, z, B));
|
|
break;
|
|
case 161:
|
|
;
|
|
case 162:
|
|
;
|
|
case 163:
|
|
;
|
|
case 164:
|
|
;
|
|
case 165:
|
|
;
|
|
case 166:
|
|
;
|
|
case 167:
|
|
;
|
|
case 168:
|
|
;
|
|
case 169:
|
|
;
|
|
case 170:
|
|
;
|
|
case 171:
|
|
;
|
|
case 172:
|
|
;
|
|
case 173:
|
|
;
|
|
case 174:
|
|
;
|
|
case 175:
|
|
;
|
|
case 176:
|
|
;
|
|
case 144:
|
|
;
|
|
case 150:
|
|
;
|
|
case 151:
|
|
this.pushExpression(c(A));
|
|
break;
|
|
case 196:
|
|
;
|
|
case 197:
|
|
;
|
|
case 198:
|
|
;
|
|
case 199:
|
|
this.pushExpression(c(A), !0);
|
|
break;
|
|
case 145:
|
|
;
|
|
case 192:
|
|
;
|
|
case 147:
|
|
;
|
|
case 193:
|
|
N(a(1));
|
|
145 === A || 147 === A ? N(w(d())) : N(l(d()));
|
|
145 === A || 192 === A ? this.pushExpression(H.ADD) : this.pushExpression(H.SUB);
|
|
break;
|
|
case 146:
|
|
;
|
|
case 194:
|
|
;
|
|
case 148:
|
|
;
|
|
case 195:
|
|
N(a(1));
|
|
146 === A || 148 === A ? N(w(s[n.index])) : N(l(s[n.index]));
|
|
146 === A || 194 === A ? this.pushExpression(H.ADD) : this.pushExpression(H.SUB);
|
|
this.popLocal(n.index);
|
|
break;
|
|
case 177:
|
|
B = d();
|
|
z = d();
|
|
N(this.call(this.getJSProperty(B, "isInstanceOf"), null, [z]));
|
|
break;
|
|
case 178:
|
|
z = d();
|
|
v = this.popMultiname();
|
|
B = this.getProperty(this.findProperty(v, !1), v);
|
|
N(this.call(p("asIsType"), null, [B, z]));
|
|
break;
|
|
case 179:
|
|
B = d();
|
|
z = d();
|
|
N(this.call(p("asIsType"), null, [B, z]));
|
|
break;
|
|
case 180:
|
|
B = d();
|
|
z = d();
|
|
v = new g.IR.ASMultiname(Q, z, 0);
|
|
N(this.store(new g.IR.ASHasProperty(C, f.store, B, v)));
|
|
break;
|
|
case 149:
|
|
N(this.call(p("asTypeOf"), null, [d()]));
|
|
break;
|
|
case 8:
|
|
N(Q);
|
|
this.popLocal(n.index);
|
|
break;
|
|
case 83:
|
|
z = e(n.argCount);
|
|
B = d();
|
|
v = p("applyType");
|
|
N(this.call(v, null, [this.methodInfoConstant, B, new ga(C, z)]));
|
|
break;
|
|
case 86:
|
|
z = e(n.argCount);
|
|
N(new ga(C, z));
|
|
break;
|
|
case 85:
|
|
B = [];
|
|
for (v = 0;v < n.argCount;v++) {
|
|
z = d();
|
|
var D = d();
|
|
F(W(D) && b.isString(D.value));
|
|
D = a(E.getPublicQualifiedName(D.value));
|
|
B.push(new ka(D, z));
|
|
}
|
|
N(new ca(C, B));
|
|
break;
|
|
case 87:
|
|
N(new g.IR.ASNewActivation(a(this.methodInfo)));
|
|
break;
|
|
case 88:
|
|
v = p("createClass");
|
|
N(this.call(v, null, [a(this.abc.classes[n.index]), d(), this.topScope()]));
|
|
break;
|
|
default:
|
|
K(String(n));
|
|
}
|
|
239 !== A && 241 !== A && 240 !== A && this.traceBuilder && ha.writeLn(("state: " + f.toString()).padRight(" ", 100) + " : " + J + ", " + n.toString(this.abc));
|
|
}
|
|
this.traceBuilder && ha.leave(("< state: " + f.toString()).padRight(" ", 100));
|
|
};
|
|
return d;
|
|
}(), na = function() {
|
|
function c(a, h, d) {
|
|
F(a && a.abc && h);
|
|
this.abc = a.abc;
|
|
this.methodInfoConstant = new v(a);
|
|
this.scope = h;
|
|
this.methodInfo = a;
|
|
this.hasDynamicScope = d;
|
|
this.traceBuilder = 3 < b.AVM2.Compiler.traceLevel.value;
|
|
this.createFunctionCallee = p("createFunction");
|
|
this.stopPoints = [];
|
|
this.bytecodes = this.methodInfo.analysis.bytecodes;
|
|
}
|
|
c.prototype.buildStart = function(b) {
|
|
var c = this.methodInfo, h = b.entryState = new ja(0);
|
|
h.local.push(new aa(b));
|
|
for (var d = this.hasDynamicScope ? 1 : 0, e = c.parameters.length, l = 0;l < e;l++) {
|
|
h.local.push(new Y(b, d + l, c.parameters[l].name));
|
|
}
|
|
for (l = e;l < c.localCount;l++) {
|
|
h.local.push(Q);
|
|
}
|
|
h.store = new $(b, 3);
|
|
b.scope = this.hasDynamicScope ? new Y(b, 0, z.SAVED_SCOPE_NAME) : new v(this.scope);
|
|
h.saved = new $(b, 4);
|
|
l = new g.IR.Arguments(b);
|
|
if (c.needsRest() || c.needsArguments()) {
|
|
var r = a(d + (c.needsRest() ? e : 0));
|
|
h.local[e + 1] = new X(b, h.store, p("sliceArguments"), null, [l, r], 4);
|
|
}
|
|
b = n(h, l, "length");
|
|
for (l = 0;l < e;l++) {
|
|
var f = c.parameters[l], r = l + 1, q = h.local[r];
|
|
if (void 0 !== f.value) {
|
|
var m;
|
|
m = new g.IR.Binary(H.LT, b, a(d + l + 1));
|
|
q = new g.IR.Latch(null, m, a(f.value), q);
|
|
}
|
|
f.type && !f.type.isAnyName() && (f = C(f.type)) && (q = f(q));
|
|
h.local[r] = q;
|
|
}
|
|
};
|
|
c.prototype.buildGraph = function() {
|
|
for (var a = this.methodInfo.analysis.blocks, c = this.traceBuilder, h = 0;h < a.length;h++) {
|
|
a[h].bdo = h, a[h].region = null;
|
|
}
|
|
var d = new b.SortedList(function(a, b) {
|
|
return a.block.bdo - b.block.bdo;
|
|
}), h = new L;
|
|
this.buildStart(h);
|
|
for (d.push({region:h, block:a[0]});a = d.pop();) {
|
|
this.buildBlock(a.region, a.block, a.region.entryState.clone()).forEach(function(a) {
|
|
var b = a.target, h = b.region;
|
|
if (h) {
|
|
c && ha.enter("Merging into region: " + h + " @ " + b.position + ", block " + b.bid + " {"), c && ha.writeLn(" R " + h.entryState), c && ha.writeLn("+ I " + a.state), h.entryState.merge(h, a.state), h.predecessors.push(a.control), c && ha.writeLn(" = " + h.entryState), c && ha.leave("}");
|
|
} else {
|
|
var h = b.region = new M(a.control), e = null;
|
|
b.loop && (e = g.enableDirtyLocals.value && b.loop.getDirtyLocals(), c && ha.writeLn("Adding PHIs to loop region. " + e));
|
|
h.entryState = b.loop ? a.state.makeLoopPhis(h, e) : a.state.clone(b.position);
|
|
c && ha.writeLn("Adding new region: " + h + " @ " + b.position + " to worklist.");
|
|
d.push({region:h, block:b});
|
|
}
|
|
}), c && ha.enter("Worklist: {"), d.forEach(function(a) {
|
|
c && ha.writeLn(a.region + " " + a.block.bdo + " " + a.region.entryState);
|
|
}), c && ha.leave("}");
|
|
}
|
|
c && ha.writeLn("Done");
|
|
if (1 < this.stopPoints.length) {
|
|
var e = new M(null), l = new ba(e, null), n = new ba(e, null);
|
|
this.stopPoints.forEach(function(a) {
|
|
e.predecessors.push(a.region);
|
|
l.pushValue(a.value);
|
|
n.pushValue(a.store);
|
|
});
|
|
a = new R(e, n, l);
|
|
} else {
|
|
a = new R(this.stopPoints[0].region, this.stopPoints[0].store, this.stopPoints[0].value);
|
|
}
|
|
return new g.IR.DFG(a);
|
|
};
|
|
c.prototype.buildBlock = function(a, b, c) {
|
|
F(a && b && c);
|
|
c.optimize();
|
|
var h = b.verifierEntryState;
|
|
if (h) {
|
|
this.traceBuilder && ha.writeLn("Type State: " + h);
|
|
for (var d = 0;d < h.local.length;d++) {
|
|
var e = h.local[d], l = c.local[d];
|
|
l.ty || (l.ty = e);
|
|
}
|
|
}
|
|
b = new pa(this, a, b, c);
|
|
b.build();
|
|
h = b.stops;
|
|
h || (h = [], b.bc.position + 1 <= this.bytecodes.length && h.push({control:a, target:this.bytecodes[b.bc.position + 1], state:c}));
|
|
return h;
|
|
};
|
|
c.buildMethod = function(a, h, d, e) {
|
|
F(d);
|
|
F(h.analysis);
|
|
F(!h.hasExceptions());
|
|
k.countTimeline("Compiler: Compiled Methods");
|
|
k.enterTimeline("Compiler");
|
|
k.enterTimeline("Mark Loops");
|
|
h.analysis.markLoops();
|
|
k.leaveTimeline();
|
|
b.AVM2.Verifier.enabled.value && (k.enterTimeline("Verify"), a.verifyMethod(h, d), k.leaveTimeline());
|
|
a = 0 < b.AVM2.Compiler.traceLevel.value;
|
|
var l = 1 < b.AVM2.Compiler.traceLevel.value, n = 2 < b.AVM2.Compiler.traceLevel.value;
|
|
if (a) {
|
|
var r = window.performance.now()
|
|
}
|
|
k.enterTimeline("Build IR");
|
|
D.startNumbering();
|
|
d = (new c(h, d, e)).buildGraph();
|
|
k.leaveTimeline();
|
|
n && d.trace(ha);
|
|
k.enterTimeline("Build CFG");
|
|
d = d.buildCFG();
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Optimize Phis");
|
|
d.optimizePhis();
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Schedule Nodes");
|
|
d.scheduleEarly();
|
|
k.leaveTimeline();
|
|
n && d.trace(ha);
|
|
k.enterTimeline("Verify IR");
|
|
d.verify();
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Allocate Variables");
|
|
d.allocateVariables();
|
|
k.leaveTimeline();
|
|
k.enterTimeline("Generate Source");
|
|
n = b.AVM2.Compiler.Backend.generate(d);
|
|
k.leaveTimeline();
|
|
l && ha.writeLn(n.body);
|
|
D.stopNumbering();
|
|
k.leaveTimeline();
|
|
a && ha.writeLn("Compiled " + (h.name ? "function " + h.name : "anonymous function") + " in " + (window.performance.now() - r).toPrecision(2) + "ms");
|
|
return n;
|
|
};
|
|
return c;
|
|
}(), fa = new b.AVM2.Verifier.Verifier;
|
|
g.compileMethod = function(a, b, c) {
|
|
return na.buildMethod(fa, a, b, c);
|
|
};
|
|
})(k.Compiler || (k.Compiler = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(b, d) {
|
|
var e = new c(null, b), h = b.abc.applicationDomain, l = [];
|
|
k(b.init, d, e, l, !1);
|
|
b.traits.forEach(function(b) {
|
|
if (b.isClass()) {
|
|
for (var n = [], f = b.classInfo;f;) {
|
|
if (n.unshift(f), f.instanceInfo.superName) {
|
|
f = h.findClassInfo(f.instanceInfo.superName);
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
var p = e;
|
|
n.forEach(function(a) {
|
|
p = new c(p, a);
|
|
});
|
|
a(b.classInfo, d, p, l);
|
|
} else {
|
|
(b.isMethod() || b.isGetter() || b.isSetter()) && m(b, d, e, l);
|
|
}
|
|
});
|
|
l.forEach(function(a) {
|
|
k(a.methodInfo, d, a.scope, null, !0);
|
|
});
|
|
}
|
|
function k(a, b, c, h, d) {
|
|
if (n(a)) {
|
|
p(a);
|
|
try {
|
|
l = !1;
|
|
var f = e(a, c, d, !1, !1);
|
|
b.enter(a.index + ": ");
|
|
l ? b.writeLn("undefined") : b.writeLns(f.toSource());
|
|
b.leave(",");
|
|
h && s(a, b, c, h);
|
|
} catch (g) {
|
|
b.writeLn("// " + g);
|
|
}
|
|
} else {
|
|
b.writeLn("// Can't compile method: " + a.index);
|
|
}
|
|
}
|
|
function s(a, b, d, h) {
|
|
for (var e = a.analysis.bytecodes, l = a.abc.methods, n = 0;n < e.length;n++) {
|
|
var f = e[n];
|
|
if (64 === f.op) {
|
|
f = l[f.index];
|
|
p(f);
|
|
var g = new c(d, a);
|
|
h.push({scope:g, methodInfo:f});
|
|
s(f, b, g, h);
|
|
}
|
|
}
|
|
}
|
|
function m(a, b, c, h) {
|
|
(a.isMethod() || a.isGetter() || a.isSetter()) && a.methodInfo.hasBody && (b.writeLn("// " + a), k(a.methodInfo, b, c, h, !1));
|
|
}
|
|
function d(a, b, c, h) {
|
|
a.forEach(function(a) {
|
|
m(a, b, c, h);
|
|
});
|
|
}
|
|
function a(a, b, c, h) {
|
|
k(a.init, b, c, h, !1);
|
|
d(a.traits, b, c, h);
|
|
k(a.instanceInfo.init, b, c, h, !1);
|
|
d(a.instanceInfo.traits, b, c, h);
|
|
}
|
|
var c = b.AVM2.Runtime.Scope, n = b.AVM2.Runtime.canCompile, p = b.AVM2.Runtime.ensureFunctionIsInitialized, e = b.AVM2.Runtime.createCompiledFunction, q = b.AVM2.Runtime.LazyInitializer, l = !1;
|
|
jsGlobal.objectConstantName = function(a) {
|
|
if (a.hash) {
|
|
return "$(" + a.hash + ")";
|
|
}
|
|
if (a instanceof q) {
|
|
return a.getName();
|
|
}
|
|
l = !0;
|
|
};
|
|
g.compileAbc = function(a, b) {
|
|
b.enter("{");
|
|
b.enter("methods: {");
|
|
for (var c = 0;c < a.scripts.length;c++) {
|
|
f(a.scripts[c], b);
|
|
}
|
|
b.leave("}");
|
|
b.leave("}");
|
|
};
|
|
})(k.Compiler || (k.Compiler = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
function g(a) {
|
|
var b = a.length, c = [], h;
|
|
for (h = 0;h < b;++h) {
|
|
c[h] = a.charAt(h);
|
|
}
|
|
return c;
|
|
}
|
|
function k(b) {
|
|
if (null === b) {
|
|
return "null";
|
|
}
|
|
if ("string" === typeof b) {
|
|
var h, e, l, r, f = 0, q = 0, m = b;
|
|
h = c[m];
|
|
if (!h) {
|
|
1024 === a && (c = Object.create(null), a = 0);
|
|
h = "";
|
|
"undefined" === typeof b[0] && (b = g(b));
|
|
e = 0;
|
|
for (l = b.length;e < l;++e) {
|
|
r = b[e];
|
|
if ("'" === r) {
|
|
++f;
|
|
} else {
|
|
if ('"' === r) {
|
|
++q;
|
|
} else {
|
|
if (0 <= "\\\n\r\u2028\u2029".indexOf(r)) {
|
|
var x = "\\";
|
|
switch(r) {
|
|
case "\\":
|
|
x += "\\";
|
|
break;
|
|
case "\n":
|
|
x += "n";
|
|
break;
|
|
case "\r":
|
|
x += "r";
|
|
break;
|
|
case "\u2028":
|
|
x += "u2028";
|
|
break;
|
|
case "\u2029":
|
|
x += "u2029";
|
|
break;
|
|
default:
|
|
throw Error("Incorrectly classified character");;
|
|
}
|
|
h += x;
|
|
continue;
|
|
} else {
|
|
if (!(" " <= r && "~" >= r)) {
|
|
var x = b[e + 1], w = r.charCodeAt(0), u = w.toString(16), s = "\\";
|
|
switch(r) {
|
|
case "\b":
|
|
s += "b";
|
|
break;
|
|
case "\f":
|
|
s += "f";
|
|
break;
|
|
case "\t":
|
|
s += "t";
|
|
break;
|
|
default:
|
|
s = 255 < w ? s + ("u" + "0000".slice(u.length) + u) : "\x00" === r && 0 > "0123456789".indexOf(x) ? s + "0" : "\x0B" === r ? s + "x0B" : s + ("x" + "00".slice(u.length) + u);
|
|
}
|
|
h += s;
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
h += r;
|
|
}
|
|
b = h;
|
|
h = '"';
|
|
"undefined" === typeof b[0] && (b = g(b));
|
|
e = 0;
|
|
for (l = b.length;e < l;++e) {
|
|
r = b[e], '"' === r && (h += "\\"), h += r;
|
|
}
|
|
h += '"';
|
|
c[m] = h;
|
|
a++;
|
|
}
|
|
return h;
|
|
}
|
|
if ("number" === typeof b) {
|
|
if (b !== b) {
|
|
throw Error("Numeric literal whose value is NaN");
|
|
}
|
|
if (0 > b || 0 === b && 0 > 1 / b) {
|
|
throw Error("Numeric literal whose value is negative");
|
|
}
|
|
b === 1 / 0 ? b = "1e+400" : (e = p[b], e || (1024 === n && (p = Object.create(null), n = 0), e = "" + b, p[b] = e, n++), b = e);
|
|
return b;
|
|
}
|
|
if ("boolean" === typeof b) {
|
|
return b ? "true" : "false";
|
|
}
|
|
d(b);
|
|
}
|
|
function m(a, b, c) {
|
|
for (var h = "", d = 0;d < a.length;d++) {
|
|
h += a[d].toSource(b), c && d < a.length - 1 && (h += c);
|
|
}
|
|
return h;
|
|
}
|
|
var d = b.Debug.notImplemented, a = 0, c = Object.create(null), n = 0, p = Object.create(null), e = {"||":3, "&&":4, "|":5, "^":6, "&":7, "==":8, "!=":8, "===":8, "!==":8, is:8, isnt:8, "<":9, ">":9, "<=":9, ">=":9, "in":9, "instanceof":9, "<<":10, ">>":10, ">>>":10, "+":11, "-":11, "*":12, "%":12, "/":12}, q = function() {
|
|
function a() {
|
|
}
|
|
a.prototype.toSource = function(a) {
|
|
d(this.type);
|
|
return "";
|
|
};
|
|
return a;
|
|
}();
|
|
f.Node = q;
|
|
var l = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(q);
|
|
f.Statement = l;
|
|
var u = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(q);
|
|
f.Expression = u;
|
|
var w = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.body = c;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(q);
|
|
f.Program = w;
|
|
var r = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.EmptyStatement = r;
|
|
var h = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.body = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return "{\n" + m(this.body, a) + "}";
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.BlockStatement = h;
|
|
var x = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.expression = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return this.expression.toSource(0) + ";\n";
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.ExpressionStatement = x;
|
|
var y = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.test = c;
|
|
this.consequent = h;
|
|
this.alternate = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
a = "if(" + this.test.toSource(0) + "){" + this.consequent.toSource(0) + "}";
|
|
this.alternate && (a += "else{" + this.alternate.toSource(0) + "}");
|
|
return a;
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.IfStatement = y;
|
|
var G = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.label = c;
|
|
this.body = h;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.LabeledStatement = G;
|
|
var I = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.label = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
a = "break";
|
|
this.label && (a += " " + this.label.toSource(0));
|
|
return a + ";";
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.BreakStatement = I;
|
|
var C = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.label = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
a = "continue";
|
|
this.label && (a += " " + this.label.toSource(0));
|
|
return a + ";";
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.ContinueStatement = C;
|
|
var E = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.object = c;
|
|
this.body = h;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.WithStatement = E;
|
|
var O = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.discriminant = c;
|
|
this.cases = h;
|
|
this.lexical = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return "switch(" + this.discriminant.toSource(0) + "){" + m(this.cases, 0, ";") + "};";
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.SwitchStatement = O;
|
|
var K = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.argument = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
a = "return ";
|
|
this.argument && (a += this.argument.toSource(0));
|
|
return a + ";\n";
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.ReturnStatement = K;
|
|
var F = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.argument = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return "throw " + this.argument.toSource(0) + ";\n";
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.ThrowStatement = F;
|
|
var J = function(a) {
|
|
function b(c, h, d, e) {
|
|
a.call(this);
|
|
this.block = c;
|
|
this.handlers = h;
|
|
this.guardedHandlers = d;
|
|
this.finalizer = e;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.TryStatement = J;
|
|
var A = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.test = c;
|
|
this.body = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return "while(" + this.test.toSource(0) + "){" + this.body.toSource(0) + "}";
|
|
};
|
|
return b;
|
|
}(l);
|
|
f.WhileStatement = A;
|
|
var B = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.body = c;
|
|
this.test = h;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.DoWhileStatement = B;
|
|
var z = function(a) {
|
|
function b(c, h, d, e) {
|
|
a.call(this);
|
|
this.init = c;
|
|
this.test = h;
|
|
this.update = d;
|
|
this.body = e;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.ForStatement = z;
|
|
var P = function(a) {
|
|
function b(c, h, d, e) {
|
|
a.call(this);
|
|
this.left = c;
|
|
this.right = h;
|
|
this.body = d;
|
|
this.each = e;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.ForInStatement = P;
|
|
var D = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.DebuggerStatement = D;
|
|
var L = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(l);
|
|
f.Declaration = L;
|
|
var M = function(a) {
|
|
function b(c, h, d, e, l, n, r) {
|
|
a.call(this);
|
|
this.id = c;
|
|
this.params = h;
|
|
this.defaults = d;
|
|
this.rest = e;
|
|
this.body = l;
|
|
this.generator = n;
|
|
this.expression = r;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(L);
|
|
f.FunctionDeclaration = M;
|
|
var V = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.declarations = c;
|
|
this.kind = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return this.kind + " " + m(this.declarations, a, ",") + ";\n";
|
|
};
|
|
return b;
|
|
}(L);
|
|
f.VariableDeclaration = V;
|
|
var Q = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.id = c;
|
|
this.init = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
a = this.id.toSource(1);
|
|
this.init && (a += "=" + this.init.toSource(1));
|
|
return a;
|
|
};
|
|
return b;
|
|
}(q);
|
|
f.VariableDeclarator = Q;
|
|
var U = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.name = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return this.name;
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.Identifier = U;
|
|
var S = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.value = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return k(this.value);
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.Literal = S;
|
|
var aa = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return "this";
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.ThisExpression = aa;
|
|
var $ = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.elements = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return "[" + m(this.elements, 1, ",") + "]";
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.ArrayExpression = $;
|
|
var ea = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.properties = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return "{" + m(this.properties, 0, ",") + "}";
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.ObjectExpression = ea;
|
|
var Z = function(a) {
|
|
function b(c, h, d, e, l, n, r) {
|
|
a.call(this);
|
|
this.id = c;
|
|
this.params = h;
|
|
this.defaults = d;
|
|
this.rest = e;
|
|
this.body = l;
|
|
this.generator = n;
|
|
this.expression = r;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(u);
|
|
f.FunctionExpression = Z;
|
|
var v = function(a) {
|
|
function b(c) {
|
|
a.call(this);
|
|
this.expressions = c;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(u);
|
|
f.SequenceExpression = v;
|
|
var X = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.operator = c;
|
|
this.prefix = h;
|
|
this.argument = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
var b = this.argument.toSource(13), b = this.prefix ? this.operator + b : b + this.operator, b = " " + b;
|
|
return 13 < a ? "(" + b + ")" : b;
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.UnaryExpression = X;
|
|
var ba = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.operator = c;
|
|
this.left = h;
|
|
this.right = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
var b = e[this.operator], c = this.left.toSource(b) + this.operator + this.right.toSource(b + 1);
|
|
return b < a ? "(" + c + ")" : c;
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.BinaryExpression = ba;
|
|
var R = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.operator = c;
|
|
this.left = h;
|
|
this.right = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
var b = this.left.toSource(1) + this.operator + this.right.toSource(1);
|
|
return 1 < a ? "(" + b + ")" : b;
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.AssignmentExpression = R;
|
|
var H = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.operator = c;
|
|
this.argument = h;
|
|
this.prefix = d;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(u);
|
|
f.UpdateExpression = H;
|
|
var Y = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this, c, h, d);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(ba);
|
|
f.LogicalExpression = Y;
|
|
var ga = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.test = c;
|
|
this.consequent = h;
|
|
this.alternate = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return this.test.toSource(3) + "?" + this.consequent.toSource(1) + ":" + this.alternate.toSource(1);
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.ConditionalExpression = ga;
|
|
var ca = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.callee = c;
|
|
this.arguments = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return "new " + this.callee.toSource(a) + "(" + m(this.arguments, a, ",") + ")";
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.NewExpression = ca;
|
|
var ka = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.callee = c;
|
|
this.arguments = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return this.callee.toSource(a) + "(" + m(this.arguments, a, ",") + ")";
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.CallExpression = ka;
|
|
var W = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.object = c;
|
|
this.property = h;
|
|
this.computed = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
var b = this.object.toSource(15);
|
|
this.object instanceof S && (b = "(" + b + ")");
|
|
var c = this.property.toSource(0), b = this.computed ? b + ("[" + c + "]") : b + ("." + c);
|
|
return 17 < a ? "(" + b + ")" : b;
|
|
};
|
|
return b;
|
|
}(u);
|
|
f.MemberExpression = W;
|
|
var ha = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.key = c;
|
|
this.value = h;
|
|
this.kind = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return this.key.toSource(a) + ":" + this.value.toSource(a);
|
|
};
|
|
return b;
|
|
}(q);
|
|
f.Property = ha;
|
|
var da = function(a) {
|
|
function b(c, h) {
|
|
a.call(this);
|
|
this.test = c;
|
|
this.consequent = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.toSource = function(a) {
|
|
return(this.test ? "case " + this.test.toSource(a) : "default") + ": " + m(this.consequent, a, ";");
|
|
};
|
|
return b;
|
|
}(q);
|
|
f.SwitchCase = da;
|
|
var ja = function(a) {
|
|
function b(c, h, d) {
|
|
a.call(this);
|
|
this.param = c;
|
|
this.guard = h;
|
|
this.body = d;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(q);
|
|
f.CatchClause = ja;
|
|
q.prototype.type = "Node";
|
|
w.prototype.type = "Program";
|
|
l.prototype.type = "Statement";
|
|
r.prototype.type = "EmptyStatement";
|
|
h.prototype.type = "BlockStatement";
|
|
x.prototype.type = "ExpressionStatement";
|
|
y.prototype.type = "IfStatement";
|
|
G.prototype.type = "LabeledStatement";
|
|
I.prototype.type = "BreakStatement";
|
|
C.prototype.type = "ContinueStatement";
|
|
E.prototype.type = "WithStatement";
|
|
O.prototype.type = "SwitchStatement";
|
|
K.prototype.type = "ReturnStatement";
|
|
F.prototype.type = "ThrowStatement";
|
|
J.prototype.type = "TryStatement";
|
|
A.prototype.type = "WhileStatement";
|
|
B.prototype.type = "DoWhileStatement";
|
|
z.prototype.type = "ForStatement";
|
|
P.prototype.type = "ForInStatement";
|
|
D.prototype.type = "DebuggerStatement";
|
|
L.prototype.type = "Declaration";
|
|
M.prototype.type = "FunctionDeclaration";
|
|
V.prototype.type = "VariableDeclaration";
|
|
Q.prototype.type = "VariableDeclarator";
|
|
u.prototype.type = "Expression";
|
|
U.prototype.type = "Identifier";
|
|
S.prototype.type = "Literal";
|
|
aa.prototype.type = "ThisExpression";
|
|
$.prototype.type = "ArrayExpression";
|
|
ea.prototype.type = "ObjectExpression";
|
|
Z.prototype.type = "FunctionExpression";
|
|
v.prototype.type = "SequenceExpression";
|
|
X.prototype.type = "UnaryExpression";
|
|
ba.prototype.type = "BinaryExpression";
|
|
R.prototype.type = "AssignmentExpression";
|
|
H.prototype.type = "UpdateExpression";
|
|
Y.prototype.type = "LogicalExpression";
|
|
ga.prototype.type = "ConditionalExpression";
|
|
ca.prototype.type = "NewExpression";
|
|
ka.prototype.type = "CallExpression";
|
|
W.prototype.type = "MemberExpression";
|
|
ha.prototype.type = "Property";
|
|
da.prototype.type = "SwitchCase";
|
|
ja.prototype.type = "CatchClause";
|
|
})(g.AST || (g.AST = {}));
|
|
})(k.Compiler || (k.Compiler = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
var g = function(b) {
|
|
function d(a, c, d) {
|
|
b.call(this);
|
|
this.parent = a;
|
|
this.object = c;
|
|
this.isWith = d;
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.visitInputs = function(a) {
|
|
a(this.parent);
|
|
a(this.object);
|
|
};
|
|
return d;
|
|
}(b.Value);
|
|
b.ASScope = g;
|
|
g.prototype.nodeName = "ASScope";
|
|
g = function(b) {
|
|
function d(a, c, d) {
|
|
b.call(this);
|
|
this.namespaces = a;
|
|
this.name = c;
|
|
this.flags = d;
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.visitInputs = function(a) {
|
|
a(this.namespaces);
|
|
a(this.name);
|
|
};
|
|
return d;
|
|
}(b.Value);
|
|
b.ASMultiname = g;
|
|
g.prototype.mustFloat = !0;
|
|
g.prototype.nodeName = "ASMultiname";
|
|
g = function(b) {
|
|
function d(a, c, d, f, e, g, l) {
|
|
b.call(this, a, c, d, f, e, g);
|
|
this.isLex = l;
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.CallProperty);
|
|
b.ASCallProperty = g;
|
|
g.prototype.nodeName = "ASCallProperty";
|
|
g = function(b) {
|
|
function d(a, c, d, f, e, g, l) {
|
|
b.call(this, a, c, d, f, e, g);
|
|
this.scope = l;
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.visitInputs = function(a) {
|
|
b.prototype.visitInputs.call(this, a);
|
|
a(this.scope);
|
|
};
|
|
return d;
|
|
}(b.CallProperty);
|
|
b.ASCallSuper = g;
|
|
g.prototype.nodeName = "ASCallSuper";
|
|
g = function(b) {
|
|
function d(a, c, d, f) {
|
|
b.call(this, a, c, d, f);
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.New);
|
|
b.ASNew = g;
|
|
g.prototype.nodeName = "ASNew";
|
|
g = function(b) {
|
|
function d(a, c, d, f, e) {
|
|
b.call(this, a, c, d, f);
|
|
this.flags = e;
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.GetProperty);
|
|
b.ASGetProperty = g;
|
|
g.prototype.nodeName = "ASGetProperty";
|
|
g = function(b) {
|
|
function d(a, c, d, f) {
|
|
b.call(this, a, c, d, f);
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.GetProperty);
|
|
b.ASGetDescendants = g;
|
|
g.prototype.nodeName = "ASGetDescendants";
|
|
g = function(b) {
|
|
function d(a, c, d, f) {
|
|
b.call(this, a, c, d, f);
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.GetProperty);
|
|
b.ASHasProperty = g;
|
|
g.prototype.nodeName = "ASHasProperty";
|
|
g = function(b) {
|
|
function d(a, c, d, f) {
|
|
b.call(this, a, c, d, f);
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.GetProperty);
|
|
b.ASGetSlot = g;
|
|
g.prototype.nodeName = "ASGetSlot";
|
|
g = function(b) {
|
|
function d(a, c, d, f, e) {
|
|
b.call(this, a, c, d, f);
|
|
this.scope = e;
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.visitInputs = function(a) {
|
|
b.prototype.visitInputs.call(this, a);
|
|
a(this.scope);
|
|
};
|
|
return d;
|
|
}(b.GetProperty);
|
|
b.ASGetSuper = g;
|
|
g.prototype.nodeName = "ASGetSuper";
|
|
g = function(b) {
|
|
function d(a, c, d, f, e, g) {
|
|
b.call(this, a, c, d, f, e);
|
|
this.flags = g;
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.SetProperty);
|
|
b.ASSetProperty = g;
|
|
g.prototype.nodeName = "ASSetProperty";
|
|
g = function(b) {
|
|
function d(a, c, d, f, e) {
|
|
b.call(this, a, c, d, f, e);
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.SetProperty);
|
|
b.ASSetSlot = g;
|
|
g.prototype.nodeName = "ASSetSlot";
|
|
g = function(b) {
|
|
function d(a, c, d, f, e, g) {
|
|
b.call(this, a, c, d, f, e);
|
|
this.scope = g;
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.visitInputs = function(a) {
|
|
b.prototype.visitInputs.call(this, a);
|
|
a(this.scope);
|
|
};
|
|
return d;
|
|
}(b.SetProperty);
|
|
b.ASSetSuper = g;
|
|
g.prototype.nodeName = "ASSetSuper";
|
|
g = function(b) {
|
|
function d(a, c, d, f) {
|
|
b.call(this, a, c, d, f);
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.DeleteProperty);
|
|
b.ASDeleteProperty = g;
|
|
g.prototype.nodeName = "ASDeleteProperty";
|
|
g = function(b) {
|
|
function d(a, c, d, f, e, g) {
|
|
b.call(this, a, c);
|
|
this.scope = d;
|
|
this.name = f;
|
|
this.methodInfo = e;
|
|
this.strict = g;
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.visitInputs = function(a) {
|
|
b.prototype.visitInputs.call(this, a);
|
|
a(this.scope);
|
|
a(this.name);
|
|
};
|
|
return d;
|
|
}(b.StoreDependent);
|
|
b.ASFindProperty = g;
|
|
g.prototype.nodeName = "ASFindProperty";
|
|
g = function(b) {
|
|
function d(a, c) {
|
|
b.call(this);
|
|
this.control = a;
|
|
this.scope = c;
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.visitInputs = function(a) {
|
|
this.control && a(this.control);
|
|
a(this.scope);
|
|
};
|
|
return d;
|
|
}(b.Value);
|
|
b.ASGlobal = g;
|
|
g.prototype.nodeName = "ASGlobal";
|
|
g = function(b) {
|
|
function d(a) {
|
|
b.call(this);
|
|
this.methodInfo = a;
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.Value);
|
|
b.ASNewActivation = g;
|
|
g.prototype.nodeName = "ASNewActivation";
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(b.Value);
|
|
b.ASNewHasNext2 = k;
|
|
g.prototype.nodeName = "ASNewHasNext2";
|
|
})(b.IR || (b.IR = {}));
|
|
})(b.Compiler || (b.Compiler = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
var g = b.ArrayUtilities.top, s = b.ArrayUtilities.peek, m = b.Debug.assert;
|
|
(function(a) {
|
|
(function(a) {
|
|
a[a.SEQ = 1] = "SEQ";
|
|
a[a.LOOP = 2] = "LOOP";
|
|
a[a.IF = 3] = "IF";
|
|
a[a.CASE = 4] = "CASE";
|
|
a[a.SWITCH = 5] = "SWITCH";
|
|
a[a.LABEL_CASE = 6] = "LABEL_CASE";
|
|
a[a.LABEL_SWITCH = 7] = "LABEL_SWITCH";
|
|
a[a.EXIT = 8] = "EXIT";
|
|
a[a.BREAK = 9] = "BREAK";
|
|
a[a.CONTINUE = 10] = "CONTINUE";
|
|
a[a.TRY = 11] = "TRY";
|
|
a[a.CATCH = 12] = "CATCH";
|
|
})(a.Kind || (a.Kind = {}));
|
|
var b = function() {
|
|
return function(a) {
|
|
this.kind = a;
|
|
};
|
|
}();
|
|
a.ControlNode = b;
|
|
var c = function(a) {
|
|
function b(c) {
|
|
a.call(this, 1);
|
|
this.body = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
for (var b = this.body, c = 0, d = b.length;c < d;c++) {
|
|
b[c].trace(a);
|
|
}
|
|
};
|
|
b.prototype.first = function() {
|
|
return this.body[0];
|
|
};
|
|
b.prototype.slice = function(a, c) {
|
|
return new b(this.body.slice(a, c));
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.Seq = c;
|
|
c = function(a) {
|
|
function b(c) {
|
|
a.call(this, 2);
|
|
this.body = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
a.enter("loop {");
|
|
this.body.trace(a);
|
|
a.leave("}");
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.Loop = c;
|
|
c = function(a) {
|
|
function b(c, d, e, l) {
|
|
a.call(this, 3);
|
|
this.cond = c;
|
|
this.then = d;
|
|
this.nothingThrownLabel = l;
|
|
this.negated = !1;
|
|
this.else = e;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
this.cond.trace(a);
|
|
this.nothingThrownLabel && a.enter("if (label is " + this.nothingThrownLabel + ") {");
|
|
a.enter("if" + (this.negated ? " not" : "") + " {");
|
|
this.then && this.then.trace(a);
|
|
this.else && (a.outdent(), a.enter("} else {"), this.else.trace(a));
|
|
a.leave("}");
|
|
this.nothingThrownLabel && a.leave("}");
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.If = c;
|
|
c = function(a) {
|
|
function b(c, d) {
|
|
a.call(this, 4);
|
|
this.index = c;
|
|
this.body = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
0 <= this.index ? a.writeLn("case " + this.index + ":") : a.writeLn("default:");
|
|
a.indent();
|
|
this.body && this.body.trace(a);
|
|
a.outdent();
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.Case = c;
|
|
c = function(a) {
|
|
function b(c, d, e) {
|
|
a.call(this, 5);
|
|
this.determinant = c;
|
|
this.cases = d;
|
|
this.nothingThrownLabel = e;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
this.nothingThrownLabel && a.enter("if (label is " + this.nothingThrownLabel + ") {");
|
|
this.determinant.trace(a);
|
|
a.writeLn("switch {");
|
|
for (var b = 0, c = this.cases.length;b < c;b++) {
|
|
this.cases[b].trace(a);
|
|
}
|
|
a.writeLn("}");
|
|
this.nothingThrownLabel && a.leave("}");
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.Switch = c;
|
|
c = function(a) {
|
|
function b(c, d) {
|
|
a.call(this, 6);
|
|
this.labels = c;
|
|
this.body = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
a.enter("if (label is " + this.labels.join(" or ") + ") {");
|
|
this.body && this.body.trace(a);
|
|
a.leave("}");
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.LabelCase = c;
|
|
c = function(a) {
|
|
function b(c) {
|
|
a.call(this, 7);
|
|
this.cases = c;
|
|
for (var d = {}, e = 0, l = c.length;e < l;e++) {
|
|
for (var n = c[e], r = 0, f = n.labels.length;r < f;r++) {
|
|
d[n.labels[r]] = n;
|
|
}
|
|
}
|
|
this.labelMap = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
for (var b = 0, c = this.cases.length;b < c;b++) {
|
|
this.cases[b].trace(a);
|
|
}
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.LabelSwitch = c;
|
|
c = function(a) {
|
|
function b(c) {
|
|
a.call(this, 8);
|
|
this.label = c;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
a.writeLn("label = " + this.label);
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.Exit = c;
|
|
c = function(a) {
|
|
function b(c, d) {
|
|
a.call(this, 9);
|
|
this.label = c;
|
|
this.head = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
this.label && a.writeLn("label = " + this.label);
|
|
a.writeLn("break");
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.Break = c;
|
|
c = function(a) {
|
|
function b(c, d) {
|
|
a.call(this, 10);
|
|
this.label = c;
|
|
this.head = d;
|
|
this.necessary = !0;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
this.label && a.writeLn("label = " + this.label);
|
|
this.necessary && a.writeLn("continue");
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.Continue = c;
|
|
c = function(a) {
|
|
function b(c, d) {
|
|
a.call(this, 11);
|
|
this.body = c;
|
|
this.catches = d;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
a.enter("try {");
|
|
this.body.trace(a);
|
|
a.writeLn("label = " + this.nothingThrownLabel);
|
|
for (var b = 0, c = this.catches.length;b < c;b++) {
|
|
this.catches[b].trace(a);
|
|
}
|
|
a.leave("}");
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.Try = c;
|
|
b = function(a) {
|
|
function b(c, d, e) {
|
|
a.call(this, 12);
|
|
this.varName = c;
|
|
this.typeName = d;
|
|
this.body = e;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.trace = function(a) {
|
|
a.outdent();
|
|
a.enter("} catch (" + (this.varName || "e") + (this.typeName ? " : " + this.typeName : "") + ") {");
|
|
this.body.trace(a);
|
|
};
|
|
return b;
|
|
}(b);
|
|
a.Catch = b;
|
|
})(f.Control || (f.Control = {}));
|
|
var d = f.Control, a = b.BitSets.BITS_PER_WORD, c = b.BitSets.ADDRESS_BITS_PER_WORD, n = b.BitSets.BIT_INDEX_MASK, p = function(b) {
|
|
function d(a, c) {
|
|
b.call(this, a);
|
|
this.blockById = c;
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.forEachBlock = function(b) {
|
|
m(b);
|
|
for (var c = this.blockById, d = this.bits, h = 0, e = d.length;h < e;h++) {
|
|
var l = d[h];
|
|
if (l) {
|
|
for (var n = 0;n < a;n++) {
|
|
l & 1 << n && b(c[h * a + n]);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
d.prototype.choose = function() {
|
|
for (var b = this.blockById, c = this.bits, d = 0, h = c.length;d < h;d++) {
|
|
var e = c[d];
|
|
if (e) {
|
|
for (var l = 0;l < a;l++) {
|
|
if (e & 1 << l) {
|
|
return b[d * a + l];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
d.prototype.members = function() {
|
|
for (var b = this.blockById, c = [], d = this.bits, h = 0, e = d.length;h < e;h++) {
|
|
var l = d[h];
|
|
if (l) {
|
|
for (var n = 0;n < a;n++) {
|
|
l & 1 << n && c.push(b[h * a + n]);
|
|
}
|
|
}
|
|
}
|
|
return c;
|
|
};
|
|
d.prototype.setBlocks = function(a) {
|
|
for (var b = this.bits, d = 0, h = a.length;d < h;d++) {
|
|
var e = a[d].id;
|
|
b[e >> c] |= 1 << (e & n);
|
|
}
|
|
};
|
|
return d;
|
|
}(b.BitSets.Uint32ArrayBitSet);
|
|
f.BlockSet = p;
|
|
var e = function() {
|
|
function a(b) {
|
|
this.makeBlockSetFactory(b.blocks.length, b.blocks);
|
|
this.hasExceptions = !1;
|
|
this.normalizeReachableBlocks(b.root);
|
|
}
|
|
a.prototype.makeBlockSetFactory = function(a, b) {
|
|
m(!this.boundBlockSet);
|
|
this.boundBlockSet = function() {
|
|
return new p(a, b);
|
|
};
|
|
};
|
|
a.prototype.normalizeReachableBlocks = function(a) {
|
|
m(0 === a.predecessors.length);
|
|
var b = this.boundBlockSet, c = [], d = {}, h = {}, e = [a];
|
|
for (h[a.id] = !0;a = g(e);) {
|
|
if (d[a.id]) {
|
|
1 === d[a.id] && (d[a.id] = 2, c.push(a)), h[a.id] = !1, e.pop();
|
|
} else {
|
|
d[a.id] = 1;
|
|
h[a.id] = !0;
|
|
for (var n = a.successors, f = 0, p = n.length;f < p;f++) {
|
|
var q = n[f];
|
|
h[q.id] && (a.spbacks || (a.spbacks = new b), a.spbacks.set(q.id));
|
|
!d[q.id] && e.push(q);
|
|
}
|
|
}
|
|
}
|
|
this.blocks = c.reverse();
|
|
};
|
|
a.prototype.computeDominance = function() {
|
|
var a = this.blocks, b = a.length, c = Array(b);
|
|
c[0] = 0;
|
|
for (var d = [], h = 0;h < b;h++) {
|
|
d[a[h].id] = h, a[h].dominatees = [];
|
|
}
|
|
for (var e = !0;e;) {
|
|
for (e = !1, h = 1;h < b;h++) {
|
|
var n = a[h].predecessors, f = n.length, g = d[n[0].id];
|
|
if (!(g in c)) {
|
|
for (var p = 1;p < f && !(g = d[n[p].id], g in c);p++) {
|
|
}
|
|
}
|
|
m(g in c);
|
|
for (p = 0;p < f;p++) {
|
|
var q = d[n[p].id];
|
|
if (q !== g && q in c) {
|
|
for (;q !== g;) {
|
|
for (;q > g;) {
|
|
q = c[q];
|
|
}
|
|
for (;g > q;) {
|
|
g = c[g];
|
|
}
|
|
}
|
|
g = q;
|
|
}
|
|
}
|
|
c[h] !== g && (c[h] = g, e = !0);
|
|
}
|
|
}
|
|
a[0].dominator = a[0];
|
|
for (h = 1;h < b;h++) {
|
|
d = a[h], p = a[c[h]], d.dominator = p, p.dominatees.push(d), d.npredecessors = d.predecessors.length;
|
|
}
|
|
b = [a[0]];
|
|
for (a[0].level || (a[0].level = 0);d = b.shift();) {
|
|
a = d.dominatees;
|
|
for (p = 0;p < a.length;p++) {
|
|
a[p].level = d.level + 1;
|
|
}
|
|
b.push.apply(b, a);
|
|
}
|
|
};
|
|
a.prototype.computeFrontiers = function() {
|
|
for (var a = this.boundBlockSet, b = this.blocks, c = 0, d = b.length;c < d;c++) {
|
|
b[c].frontier = new a;
|
|
}
|
|
c = 1;
|
|
for (d = b.length;c < d;c++) {
|
|
var a = b[c], h = a.predecessors;
|
|
if (2 <= h.length) {
|
|
for (var e = a.dominator, n = 0, f = h.length;n < f;n++) {
|
|
for (var g = h[n];g !== e;) {
|
|
g.frontier.set(a.id), g = g.dominator;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
a.prototype.analyzeControlFlow = function() {
|
|
this.computeDominance();
|
|
return this.analyzedControlFlow = !0;
|
|
};
|
|
a.prototype.markLoops = function() {
|
|
function a(b) {
|
|
var c = 1, h = {}, d = {}, e = [], l = [], n = [], f = b.level + 1;
|
|
b = [b];
|
|
for (var r, p;r = g(b);) {
|
|
if (h[r.id]) {
|
|
if (s(l) === r) {
|
|
l.pop();
|
|
var q = [];
|
|
do {
|
|
p = e.pop(), d[p.id] = !0, q.push(p);
|
|
} while (p !== r);
|
|
(1 < q.length || p.spbacks && p.spbacks.get(p.id)) && n.push(q);
|
|
}
|
|
b.pop();
|
|
} else {
|
|
h[r.id] = c++;
|
|
e.push(r);
|
|
l.push(r);
|
|
p = r.successors;
|
|
for (var q = 0, m = p.length;q < m;q++) {
|
|
if (r = p[q], !(r.level < f)) {
|
|
var x = r.id;
|
|
if (!h[x]) {
|
|
b.push(r);
|
|
} else {
|
|
if (!d[x]) {
|
|
for (;h[s(l).id] > h[x];) {
|
|
l.pop();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return n;
|
|
}
|
|
function b(a, h) {
|
|
var d = new c;
|
|
d.setBlocks(a);
|
|
d.recount();
|
|
this.id = h;
|
|
this.body = d;
|
|
this.exit = new c;
|
|
this.save = {};
|
|
this.head = new c;
|
|
this.npredecessors = 0;
|
|
}
|
|
if (!this.analyzedControlFlow && !this.analyzeControlFlow()) {
|
|
return!1;
|
|
}
|
|
var c = this.boundBlockSet, d = function(a) {
|
|
for (var b = new c, h = 0, d = a.length;h < d;h++) {
|
|
var e = a[h], l = e.spbacks;
|
|
if (l) {
|
|
for (var e = e.successors, n = 0, f = e.length;n < f;n++) {
|
|
var r = e[n];
|
|
l.get(r.id) && b.set(r.dominator.id);
|
|
}
|
|
}
|
|
}
|
|
return b.members();
|
|
}(this.blocks);
|
|
if (0 >= d.length) {
|
|
return this.markedLoops = !0;
|
|
}
|
|
for (var d = d.sort(function(a, b) {
|
|
return a.level - b.level;
|
|
}), h = 0, e = d.length - 1;0 <= e;e--) {
|
|
var n = d[e], f = a(n);
|
|
if (0 !== f.length) {
|
|
for (var p = 0, q = f.length;p < q;p++) {
|
|
for (var m = f[p], k = new b(m, h++), K = 0, F = m.length;K < F;K++) {
|
|
var J = m[K];
|
|
if (J.level === n.level + 1 && !J.loop) {
|
|
J.loop = k;
|
|
k.head.set(J.id);
|
|
for (var A = J.predecessors, B = 0, z = A.length;B < z;B++) {
|
|
k.body.get(A[B].id) && J.npredecessors--;
|
|
}
|
|
k.npredecessors += J.npredecessors;
|
|
}
|
|
}
|
|
K = 0;
|
|
for (F = m.length;K < F;K++) {
|
|
J = m[K], J.level === n.level + 1 && (J.npredecessors = k.npredecessors);
|
|
}
|
|
k.head.recount();
|
|
}
|
|
}
|
|
}
|
|
return this.markedLoops = !0;
|
|
};
|
|
a.prototype.induceControlTree = function() {
|
|
function a(b, c) {
|
|
b.recount();
|
|
if (0 === b.count) {
|
|
return null;
|
|
}
|
|
b.save = c;
|
|
return b;
|
|
}
|
|
function b(n, f, p, q, m, k, s) {
|
|
for (var K = [];n;) {
|
|
if (1 < n.count) {
|
|
for (var F = new e, J = {}, A = [], B = n.members(), z = 0, P = B.length;z < P;z++) {
|
|
var D = B[z], L = D.id, M;
|
|
if (D.loop && n.contains(D.loop.head)) {
|
|
var V = D.loop;
|
|
if (!V.induced) {
|
|
for (var Q = V.head.members(), U = 0, S = 0, aa = Q.length;S < aa;S++) {
|
|
U += n.save[Q[S].id];
|
|
}
|
|
if (0 < D.npredecessors - U) {
|
|
D.npredecessors -= n.save[L], D.save = n.save[L], M = b(D, F, J, q), A.push(new d.LabelCase([L], M));
|
|
} else {
|
|
S = 0;
|
|
for (aa = Q.length;S < aa;S++) {
|
|
M = Q[S], M.npredecessors -= U, M.save = U;
|
|
}
|
|
M = b(D, F, J, q);
|
|
A.push(new d.LabelCase(V.head.toArray(), M));
|
|
V.induced = !0;
|
|
}
|
|
}
|
|
} else {
|
|
D.npredecessors -= n.save[L], D.save = n.save[L], M = b(D, F, J, q), A.push(new d.LabelCase([L], M));
|
|
}
|
|
}
|
|
for (var D = [], S = 0, z = 0;z < A.length;z++) {
|
|
M = A[z];
|
|
P = M.labels;
|
|
Q = aa = 0;
|
|
for (V = P.length;Q < V;Q++) {
|
|
L = P[Q], F.get(L) && 0 < B[z].npredecessors - n.save[L] ? D.push(L) : P[aa++] = L;
|
|
}
|
|
P.length = aa;
|
|
0 < P.length && (A[S++] = M);
|
|
}
|
|
A.length = S;
|
|
if (0 === A.length) {
|
|
for (z = 0;z < D.length;z++) {
|
|
L = D[z], p[L] = (p[L] || 0) + n.save[L], f.set(L);
|
|
}
|
|
break;
|
|
}
|
|
K.push(new d.LabelSwitch(A));
|
|
n = a(F, J);
|
|
} else {
|
|
1 === n.count ? (D = n.choose(), L = D.id, D.npredecessors -= n.save[L], D.save = n.save[L]) : (D = n, L = D.id);
|
|
if (m) {
|
|
m = !1;
|
|
} else {
|
|
if (q && !q.body.get(L)) {
|
|
D.npredecessors += D.save;
|
|
q.exit.set(L);
|
|
q.save[L] = (q.save[L] || 0) + D.save;
|
|
K.push(new d.Break(L, q));
|
|
break;
|
|
}
|
|
if (q && D.loop === q) {
|
|
D.npredecessors += D.save;
|
|
K.push(new d.Continue(L, q));
|
|
break;
|
|
}
|
|
if (D === s) {
|
|
break;
|
|
}
|
|
if (0 < D.npredecessors) {
|
|
D.npredecessors += D.save;
|
|
p[L] = (p[L] || 0) + D.save;
|
|
f.set(L);
|
|
K.push(k ? new d.Break(L, k) : new d.Exit(L));
|
|
break;
|
|
}
|
|
if (D.loop) {
|
|
var aa = D.loop;
|
|
if (1 === aa.head.count) {
|
|
F = b(aa.head.choose(), null, null, aa, !0);
|
|
} else {
|
|
F = [];
|
|
Q = aa.head.members();
|
|
z = 0;
|
|
for (P = Q.length;z < P;z++) {
|
|
M = Q[z], J = M.id, M = b(M, null, null, aa, !0), F.push(new d.LabelCase([J], M));
|
|
}
|
|
F = new d.LabelSwitch(F);
|
|
}
|
|
K.push(new d.Loop(F));
|
|
n = a(aa.exit, aa.save);
|
|
continue;
|
|
}
|
|
}
|
|
F = new e;
|
|
J = {};
|
|
if (c && D.hasCatches) {
|
|
M = D.successors;
|
|
A = [];
|
|
n = [];
|
|
z = 0;
|
|
for (P = M.length;z < P;z++) {
|
|
B = M[z], (B.exception ? A : n).push(B);
|
|
}
|
|
P = [];
|
|
for (z = 0;z < A.length;z++) {
|
|
B = A[z], B.npredecessors -= 1, B.save = 1, M = b(B, F, J, q), B = B.exception, P.push(new d.Catch(B.varName, B.typeName, M));
|
|
}
|
|
P = new d.Try(D, P);
|
|
} else {
|
|
n = D.successors, P = D;
|
|
}
|
|
if (2 < n.length) {
|
|
A = [];
|
|
for (z = n.length - 1;0 <= z;z--) {
|
|
B = n[z], B.npredecessors -= 1, B.save = 1, M = b(B, F, J, q, null, D, n[z + 1]), A.unshift(new d.Case(z, M));
|
|
}
|
|
g(A).index = void 0;
|
|
c && D.hasCatches ? (P.nothingThrownLabel = h, P = new d.Switch(P, A, h++)) : P = new d.Switch(P, A);
|
|
n = a(F, J);
|
|
} else {
|
|
2 === n.length ? (z = D.hasFlippedSuccessors ? n[1] : n[0], M = D.hasFlippedSuccessors ? n[0] : n[1], z.npredecessors -= 1, z.save = 1, z = b(z, F, J, q), M.npredecessors -= 1, M.save = 1, M = b(M, F, J, q), c && D.hasCatches ? (P.nothingThrownLabel = h, P = new d.If(P, z, M, h++)) : P = new d.If(P, z, M), n = a(F, J)) : (M = n[0]) ? c && D.hasCatches ? (P.nothingThrownLabel = M.id, J[M.id] = (J[M.id] || 0) + 1, F.set(M.id), n = a(F, J)) : (M.npredecessors -= 1, M.save = 1, n =
|
|
M) : c && D.hasCatches ? (P.nothingThrownLabel = -1, n = a(F, J)) : n = M;
|
|
}
|
|
K.push(P);
|
|
}
|
|
}
|
|
return 1 < K.length ? new d.Seq(K) : K[0];
|
|
}
|
|
var c = this.hasExceptions, e = this.boundBlockSet, h = this.blocks.length;
|
|
this.controlTree = b(this.blocks[0], new e, {});
|
|
};
|
|
a.prototype.restructureControlFlow = function() {
|
|
k.enterTimeline("Restructure Control Flow");
|
|
if (this.markedLoops || this.markLoops()) {
|
|
this.induceControlTree(), this.restructuredControlFlow = !0;
|
|
}
|
|
k.leaveTimeline();
|
|
};
|
|
return a;
|
|
}();
|
|
f.Analysis = e;
|
|
f.analyze = function(a) {
|
|
a = new e(a);
|
|
a.restructureControlFlow();
|
|
return a.controlTree;
|
|
};
|
|
})(g.Looper || (g.Looper = {}));
|
|
})(k.Compiler || (k.Compiler = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
function t(c, h) {
|
|
if ("string" === typeof c || null === c || !0 === c || !1 === c) {
|
|
return new y(c);
|
|
}
|
|
if (void 0 === c) {
|
|
return new G("undefined");
|
|
}
|
|
if ("object" === typeof c || "function" === typeof c) {
|
|
return c instanceof b.AVM2.Runtime.LazyInitializer ? a(d(ka, "C"), [new y(h.useConstant(c))]) : new E(W, new y(h.useConstant(c)), !0);
|
|
}
|
|
if ("number" === typeof c && isNaN(c)) {
|
|
return new G("NaN");
|
|
}
|
|
if (Infinity === c) {
|
|
return new G("Infinity");
|
|
}
|
|
if (-Infinity === c) {
|
|
return new D("-", !0, new G("Infinity"));
|
|
}
|
|
if ("number" === typeof c && 0 > 1 / c) {
|
|
return new D("-", !0, new y(Math.abs(c)));
|
|
}
|
|
if ("number" === typeof c) {
|
|
return new y(c);
|
|
}
|
|
r("Cannot emit constant for value: " + c);
|
|
}
|
|
function s(a) {
|
|
w("string" === typeof a);
|
|
return new G(a);
|
|
}
|
|
function m(a) {
|
|
var b = a[0];
|
|
if (!("$" === b || "_" === b || "\\" === b || "a" <= b && "z" >= b || "A" <= b && "Z" >= b)) {
|
|
return!1;
|
|
}
|
|
for (b = 1;b < a.length;b++) {
|
|
var c = a[b];
|
|
if (!("$" === c || "_" === c || "\\" === c || "a" <= c && "z" >= c || "A" <= c && "Z" >= c || "0" <= c && "9" >= c)) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
}
|
|
function d(a) {
|
|
for (var b = [], c = 0;c < arguments.length - 1;c++) {
|
|
b[c] = arguments[c + 1];
|
|
}
|
|
for (c = 0;c < b.length;c++) {
|
|
var h = b[c];
|
|
a = "string" === typeof h ? m(h) ? new E(a, new G(h), !1) : new E(a, new y(h), !0) : h instanceof y && m(h.value) ? new E(a, new G(h.value), !1) : new E(a, h, !0);
|
|
}
|
|
return a;
|
|
}
|
|
function a(a, b) {
|
|
w(b instanceof Array);
|
|
b.forEach(function(a) {
|
|
w(!(a instanceof Array));
|
|
w(void 0 !== a);
|
|
});
|
|
return new K(a, b);
|
|
}
|
|
function c(b, c, h) {
|
|
return a(d(b, "asCall"), [c].concat(h));
|
|
}
|
|
function n(b, c, h) {
|
|
return a(d(b, "call"), [c].concat(h));
|
|
}
|
|
function p(a, b) {
|
|
w(a && b);
|
|
return new F("=", a, b);
|
|
}
|
|
function e(a) {
|
|
return new I(a, "var");
|
|
}
|
|
function q(a, b, c) {
|
|
w(a);
|
|
w(a.compile, "Implement |compile| for " + a + " (" + a.nodeName + ")");
|
|
w(b instanceof ha);
|
|
w(!(a instanceof Array));
|
|
if (c || !a.variable) {
|
|
return a.compile(b);
|
|
}
|
|
w(a.variable, "Value has no variable: " + a);
|
|
return s(a.variable.name);
|
|
}
|
|
function l(a, b) {
|
|
return[q(a.namespaces, b), q(a.name, b), t(a.flags)];
|
|
}
|
|
function u(a, b) {
|
|
w(a instanceof Array);
|
|
return a.map(function(a) {
|
|
return q(a, b);
|
|
});
|
|
}
|
|
var w = b.Debug.assert, r = b.Debug.unexpected, h = b.Debug.notImplemented, x = b.ArrayUtilities.pushUnique, y = g.AST.Literal, G = g.AST.Identifier, I = g.AST.VariableDeclaration, C = g.AST.VariableDeclarator, E = g.AST.MemberExpression, O = g.AST.BinaryExpression, K = g.AST.CallExpression, F = g.AST.AssignmentExpression, J = g.AST.ExpressionStatement, A = g.AST.ReturnStatement, B = g.AST.ConditionalExpression, z = g.AST.ObjectExpression, P = g.AST.ArrayExpression, D = g.AST.UnaryExpression,
|
|
L = g.AST.NewExpression, M = g.AST.Property, V = g.AST.BlockStatement, Q = g.AST.ThisExpression, U = g.AST.ThrowStatement, S = g.AST.IfStatement, aa = g.AST.WhileStatement, $ = g.AST.BreakStatement, ea = g.AST.ContinueStatement, Z = g.AST.SwitchStatement, v = g.AST.SwitchCase, X = g.IR.Start, ba = g.IR.Variable, R = g.IR.Constant, H = g.IR.Operator, Y = b.AVM2.Compiler.Looper, ga = Y.Control, ca = b.ArrayUtilities.last;
|
|
ga.Break.prototype.compile = function(a) {
|
|
return a.compileBreak(this);
|
|
};
|
|
ga.Continue.prototype.compile = function(a) {
|
|
return a.compileContinue(this);
|
|
};
|
|
ga.Exit.prototype.compile = function(a) {
|
|
return a.compileExit(this);
|
|
};
|
|
ga.LabelSwitch.prototype.compile = function(a) {
|
|
return a.compileLabelSwitch(this);
|
|
};
|
|
ga.Seq.prototype.compile = function(a) {
|
|
return a.compileSequence(this);
|
|
};
|
|
ga.Loop.prototype.compile = function(a) {
|
|
return a.compileLoop(this);
|
|
};
|
|
ga.Switch.prototype.compile = function(a) {
|
|
return a.compileSwitch(this);
|
|
};
|
|
ga.If.prototype.compile = function(a) {
|
|
return a.compileIf(this);
|
|
};
|
|
ga.Try.prototype.compile = function(a) {
|
|
h("try");
|
|
return null;
|
|
};
|
|
var ka = new G("$F"), W = new G("$C"), ha = function() {
|
|
function a() {
|
|
this.label = new ba("$L");
|
|
this.variables = [];
|
|
this.constants = [];
|
|
this.parameters = [];
|
|
}
|
|
a.prototype.useConstant = function(a) {
|
|
return x(this.constants, a);
|
|
};
|
|
a.prototype.useVariable = function(a) {
|
|
w(a);
|
|
x(this.variables, a);
|
|
};
|
|
a.prototype.useParameter = function(a) {
|
|
this.parameters[a.index] = a;
|
|
};
|
|
a.prototype.compileLabelBody = function(a) {
|
|
var b = [];
|
|
void 0 !== a.label && (this.useVariable(this.label), b.push(new J(p(s(this.label.name), new y(a.label)))));
|
|
return b;
|
|
};
|
|
a.prototype.compileBreak = function(a) {
|
|
a = this.compileLabelBody(a);
|
|
a.push(new $(null));
|
|
return new V(a);
|
|
};
|
|
a.prototype.compileContinue = function(a) {
|
|
a = this.compileLabelBody(a);
|
|
a.push(new ea(null));
|
|
return new V(a);
|
|
};
|
|
a.prototype.compileExit = function(a) {
|
|
return new V(this.compileLabelBody(a));
|
|
};
|
|
a.prototype.compileIf = function(a) {
|
|
var b = a.cond.compile(this), c = null, h = null;
|
|
a.then && (c = a.then.compile(this));
|
|
a.else && (h = a.else.compile(this));
|
|
var d = q(b.end.predicate, this);
|
|
if (a.negated) {
|
|
a: {
|
|
a = d;
|
|
if (a instanceof R) {
|
|
if (!0 === a.value || !1 === a.value) {
|
|
a = t(!a.value);
|
|
break a;
|
|
}
|
|
} else {
|
|
if (a instanceof G) {
|
|
a = new D(H.FALSE.name, !0, a);
|
|
break a;
|
|
}
|
|
}
|
|
w(a instanceof O || a instanceof D, a);
|
|
var d = a instanceof O ? a.left : a.argument, e = a.right, l = H.fromName(a.operator);
|
|
a = l === H.EQ && e instanceof y && !1 === e.value || l === H.FALSE ? d : l.not ? a instanceof O ? new O(l.not.name, d, e) : new D(l.not.name, !0, d) : new D(H.FALSE.name, !0, a);
|
|
}
|
|
} else {
|
|
a = d;
|
|
}
|
|
b.body.push(new S(a, c || new V([]), h || null));
|
|
return b;
|
|
};
|
|
a.prototype.compileSwitch = function(a) {
|
|
var b = a.determinant.compile(this), c = [];
|
|
a.cases.forEach(function(a) {
|
|
var b;
|
|
a.body && (b = a.body.compile(this));
|
|
a = "number" === typeof a.index ? new y(a.index) : void 0;
|
|
c.push(new v(a, b ? [b] : []));
|
|
}, this);
|
|
a = q(b.end.determinant, this);
|
|
b.body.push(new Z(a, c, !1));
|
|
return b;
|
|
};
|
|
a.prototype.compileLabelSwitch = function(a) {
|
|
function b(a) {
|
|
w("number" === typeof a);
|
|
return new O("===", h, new y(a));
|
|
}
|
|
for (var c = null, h = s(this.label.name), d = a.cases.length - 1;0 <= d;d--) {
|
|
for (var e = a.cases[d], l = e.labels, n = b(l[0]), f = 1;f < l.length;f++) {
|
|
n = new O("||", n, b(l[f]));
|
|
}
|
|
c = new S(n, e.body ? e.body.compile(this) : new V([]), c);
|
|
}
|
|
return c;
|
|
};
|
|
a.prototype.compileLoop = function(a) {
|
|
a = a.body.compile(this);
|
|
return new aa(t(!0), a);
|
|
};
|
|
a.prototype.compileSequence = function(a) {
|
|
var b = this, c = [];
|
|
a.body.forEach(function(a) {
|
|
a = a.compile(b);
|
|
a instanceof V ? c = c.concat(a.body) : c.push(a);
|
|
});
|
|
return new V(c);
|
|
};
|
|
a.prototype.compileBlock = function(a) {
|
|
for (var b = [], c = 1;c < a.nodes.length - 1;c++) {
|
|
var h = a.nodes[c], d;
|
|
h instanceof g.IR.Throw ? d = q(h, this, !0) : (h instanceof g.IR.Move ? (d = s(h.to.name), this.useVariable(h.to), h = q(h.from, this)) : (h.variable ? (d = s(h.variable.name), this.useVariable(h.variable)) : d = null, h = q(h, this, !0)), d = d ? new J(p(d, h)) : new J(h));
|
|
b.push(d);
|
|
}
|
|
c = ca(a.nodes);
|
|
c instanceof g.IR.Stop && b.push(new A(q(c.argument, this)));
|
|
b = new V(b);
|
|
b.end = ca(a.nodes);
|
|
w(b.end instanceof g.IR.End);
|
|
return b;
|
|
};
|
|
return a;
|
|
}();
|
|
f.Context = ha;
|
|
g.IR.Parameter.prototype.compile = function(a) {
|
|
a.useParameter(this);
|
|
return s(this.name);
|
|
};
|
|
g.IR.Constant.prototype.compile = function(a) {
|
|
return t(this.value, a);
|
|
};
|
|
g.IR.Variable.prototype.compile = function(a) {
|
|
return s(this.name);
|
|
};
|
|
g.IR.Phi.prototype.compile = function(a) {
|
|
w(this.variable);
|
|
return q(this.variable, a);
|
|
};
|
|
g.IR.ASScope.prototype.compile = function(a) {
|
|
var b = q(this.parent, a);
|
|
a = q(this.object, a);
|
|
var c = new y(this.isWith);
|
|
return new L(s("Scope"), [b, a, c]);
|
|
};
|
|
g.IR.ASFindProperty.prototype.compile = function(b) {
|
|
var c = q(this.scope, b), h = l(this.name, b);
|
|
b = q(this.methodInfo, b);
|
|
var e = new y(this.strict);
|
|
return a(d(c, "findScopeProperty"), h.concat([b, e]));
|
|
};
|
|
g.IR.ASGetProperty.prototype.compile = function(b) {
|
|
var c = q(this.object, b);
|
|
if (this.flags & 1) {
|
|
return w(!(this.flags & 8)), a(d(c, "asGetNumericProperty"), [q(this.name.name, b)]);
|
|
}
|
|
if (this.flags & 2) {
|
|
return a(d(c, "asGetResolvedStringProperty"), [q(this.name, b)]);
|
|
}
|
|
b = l(this.name, b);
|
|
var h = new y(this.flags & 8);
|
|
return a(d(c, "asGetProperty"), b.concat(h));
|
|
};
|
|
g.IR.ASGetSuper.prototype.compile = function(b) {
|
|
var c = q(this.scope, b), h = q(this.object, b);
|
|
b = l(this.name, b);
|
|
return a(d(h, "asGetSuper"), [c].concat(b));
|
|
};
|
|
g.IR.Latch.prototype.compile = function(a) {
|
|
return new B(q(this.condition, a), q(this.left, a), q(this.right, a));
|
|
};
|
|
g.IR.Unary.prototype.compile = function(a) {
|
|
return new D(this.operator.name, !0, q(this.argument, a));
|
|
};
|
|
g.IR.Copy.prototype.compile = function(a) {
|
|
return q(this.argument, a);
|
|
};
|
|
g.IR.Binary.prototype.compile = function(b) {
|
|
var c = q(this.left, b);
|
|
b = q(this.right, b);
|
|
return this.operator === g.IR.Operator.AS_ADD ? a(s("asAdd"), [c, b]) : new O(this.operator.name, c, b);
|
|
};
|
|
g.IR.CallProperty.prototype.compile = function(b) {
|
|
var h = q(this.object, b), e = q(this.name, b), e = d(h, e), l = this.args.map(function(a) {
|
|
return q(a, b);
|
|
});
|
|
return this.flags & 16 ? c(e, h, l) : this.flags & 4 ? a(e, l) : n(e, h, l);
|
|
};
|
|
g.IR.ASCallProperty.prototype.compile = function(b) {
|
|
var c = q(this.object, b), h = this.args.map(function(a) {
|
|
return q(a, b);
|
|
});
|
|
if (this.flags & 2) {
|
|
return a(d(c, "asCallResolvedStringProperty"), [q(this.name, b), new y(this.isLex), new P(h)]);
|
|
}
|
|
var e = l(this.name, b);
|
|
return a(d(c, "asCallProperty"), e.concat([new y(this.isLex), new P(h)]));
|
|
};
|
|
g.IR.ASCallSuper.prototype.compile = function(b) {
|
|
var c = q(this.scope, b), h = q(this.object, b), e = this.args.map(function(a) {
|
|
return q(a, b);
|
|
}), n = l(this.name, b);
|
|
return a(d(h, "asCallSuper"), [c].concat(n).concat(new P(e)));
|
|
};
|
|
g.IR.Call.prototype.compile = function(b) {
|
|
var h = this.args.map(function(a) {
|
|
return q(a, b);
|
|
}), d = q(this.callee, b), e;
|
|
e = this.object ? q(this.object, b) : new y(null);
|
|
return this.flags & 16 ? c(d, e, h) : null === this.object ? a(d, h) : n(d, e, h);
|
|
};
|
|
g.IR.ASNew.prototype.compile = function(a) {
|
|
var b = this.args.map(function(b) {
|
|
return q(b, a);
|
|
}), c = q(this.callee, a), c = d(c, "instanceConstructor");
|
|
return new L(c, b);
|
|
};
|
|
g.IR.This.prototype.compile = function(a) {
|
|
return new Q;
|
|
};
|
|
g.IR.Throw.prototype.compile = function(a) {
|
|
a = q(this.argument, a);
|
|
return new U(a);
|
|
};
|
|
g.IR.Arguments.prototype.compile = function(a) {
|
|
return s("arguments");
|
|
};
|
|
g.IR.ASGlobal.prototype.compile = function(a) {
|
|
a = q(this.scope, a);
|
|
return d(a, "global", "object");
|
|
};
|
|
g.IR.ASSetProperty.prototype.compile = function(b) {
|
|
var c = q(this.object, b), h = q(this.value, b);
|
|
if (this.flags & 1) {
|
|
return a(d(c, "asSetNumericProperty"), [q(this.name.name, b), h]);
|
|
}
|
|
b = l(this.name, b);
|
|
return a(d(c, "asSetProperty"), b.concat(h));
|
|
};
|
|
g.IR.ASSetSuper.prototype.compile = function(b) {
|
|
var c = q(this.scope, b), h = q(this.object, b), e = l(this.name, b);
|
|
b = q(this.value, b);
|
|
return a(d(h, "asSetSuper"), [c].concat(e).concat([b]));
|
|
};
|
|
g.IR.ASDeleteProperty.prototype.compile = function(b) {
|
|
var c = q(this.object, b);
|
|
b = l(this.name, b);
|
|
return a(d(c, "asDeleteProperty"), b);
|
|
};
|
|
g.IR.ASHasProperty.prototype.compile = function(b) {
|
|
var c = q(this.object, b);
|
|
b = l(this.name, b);
|
|
return a(d(c, "asHasProperty"), b);
|
|
};
|
|
g.IR.GlobalProperty.prototype.compile = function(a) {
|
|
return s(this.name);
|
|
};
|
|
g.IR.GetProperty.prototype.compile = function(a) {
|
|
var b = q(this.object, a);
|
|
a = q(this.name, a);
|
|
return d(b, a);
|
|
};
|
|
g.IR.SetProperty.prototype.compile = function(a) {
|
|
var b = q(this.object, a), c = q(this.name, a);
|
|
a = q(this.value, a);
|
|
return p(d(b, c), a);
|
|
};
|
|
g.IR.ASGetDescendants.prototype.compile = function(b) {
|
|
var c = q(this.object, b);
|
|
b = q(this.name, b);
|
|
return a(s("getDescendants"), [c, b]);
|
|
};
|
|
g.IR.ASSetSlot.prototype.compile = function(b) {
|
|
var c = q(this.object, b), h = q(this.name, b);
|
|
b = q(this.value, b);
|
|
return a(s("asSetSlot"), [c, h, b]);
|
|
};
|
|
g.IR.ASGetSlot.prototype.compile = function(b) {
|
|
var c = q(this.object, b);
|
|
b = q(this.name, b);
|
|
return a(s("asGetSlot"), [c, b]);
|
|
};
|
|
g.IR.Projection.prototype.compile = function(a) {
|
|
w(4 === this.type);
|
|
w(this.argument instanceof X);
|
|
return q(this.argument.scope, a);
|
|
};
|
|
g.IR.NewArray.prototype.compile = function(a) {
|
|
return new P(u(this.elements, a));
|
|
};
|
|
g.IR.NewObject.prototype.compile = function(a) {
|
|
var b = this.properties.map(function(b) {
|
|
var c = q(b.key, a);
|
|
b = q(b.value, a);
|
|
return new M(c, b, "init");
|
|
});
|
|
return new z(b);
|
|
};
|
|
g.IR.ASNewActivation.prototype.compile = function(b) {
|
|
b = q(this.methodInfo, b);
|
|
return a(s("asCreateActivation"), [b]);
|
|
};
|
|
g.IR.ASNewHasNext2.prototype.compile = function(a) {
|
|
return new L(s("HasNext2Info"), []);
|
|
};
|
|
g.IR.ASMultiname.prototype.compile = function(b) {
|
|
var c = q(this.namespaces, b);
|
|
b = q(this.name, b);
|
|
return a(s("createName"), [c, b]);
|
|
};
|
|
g.IR.Block.prototype.compile = function(a) {
|
|
return a.compileBlock(this);
|
|
};
|
|
var da = function() {
|
|
function a(b, c, h) {
|
|
this.parameters = b;
|
|
this.body = c;
|
|
this.constants = h;
|
|
}
|
|
a.prototype.C = function(a) {
|
|
var b = this.constants[a];
|
|
b._isLazyInitializer && (this.constants[a] = b.resolve());
|
|
return this.constants[a];
|
|
};
|
|
a.id = 0;
|
|
return a;
|
|
}();
|
|
f.Compilation = da;
|
|
f.generate = function(a) {
|
|
k.enterTimeline("Looper");
|
|
var c = Y.analyze(a);
|
|
k.leaveTimeline();
|
|
new b.IndentingWriter;
|
|
a = new ha;
|
|
k.enterTimeline("Construct AST");
|
|
var h = c.compile(a);
|
|
k.leaveTimeline();
|
|
for (var c = [], d = 0;d < a.parameters.length;d++) {
|
|
c.push(s(a.parameters[d] ? a.parameters[d].name : "_" + d));
|
|
}
|
|
d = "$$F" + da.id++;
|
|
if (a.constants.length) {
|
|
var l = new G(d), n = new E(l, new G("constants"), !1);
|
|
h.body.unshift(e([new C(s("$F"), l), new C(s("$C"), n)]));
|
|
}
|
|
a.variables.length && (k.countTimeline("Backend: Locals", a.variables.length), l = e(a.variables.map(function(a) {
|
|
return new C(s(a.name));
|
|
})), h.body.unshift(l));
|
|
k.enterTimeline("Serialize AST");
|
|
h = h.toSource();
|
|
k.leaveTimeline();
|
|
return jsGlobal[d] = new da(c.map(function(a) {
|
|
return a.name;
|
|
}), h, a.constants);
|
|
};
|
|
})(g.Backend || (g.Backend = {}));
|
|
})(k.Compiler || (k.Compiler = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(c) {
|
|
k.enterTimeline("executeScript", {name:c.name});
|
|
var d = c.abc;
|
|
p(!c.executing && !c.executed);
|
|
var h = new g.Global(c);
|
|
d.applicationDomain.allowNatives && (h[a.getPublicQualifiedName("unsafeJSNative")] = b.AVM2.AS.getNative);
|
|
c.executing = !0;
|
|
d = new g.Scope(null, c.global);
|
|
g.createFunction(c.init, d, !1, !1).call(c.global, !1);
|
|
c.executed = !0;
|
|
k.leaveTimeline();
|
|
}
|
|
function t(a, c) {
|
|
"undefined" === typeof c && (c = "");
|
|
a.executed || a.executing || (2 <= b.AVM2.Runtime.traceExecution.value && log("Executing Script For: " + c), f(a));
|
|
}
|
|
function s(a) {
|
|
if (!g.playerglobal) {
|
|
return null;
|
|
}
|
|
for (var b = 0;b < a.namespaces.length;b++) {
|
|
var c = g.playerglobal.map[a.namespaces[b].uri + ":" + a.name];
|
|
if (c) {
|
|
break;
|
|
}
|
|
}
|
|
return c ? (a = c, a = (b = g.playerglobal.scripts[a]) ? new d(new Uint8Array(g.playerglobal.abcs, b.offset, b.length), a) : null, a) : null;
|
|
}
|
|
function m(a, b) {
|
|
return new Promise(function(c, d) {
|
|
var e = new XMLHttpRequest;
|
|
e.open("GET", a);
|
|
e.responseType = b;
|
|
e.onload = function() {
|
|
var l = e.response;
|
|
l ? ("json" === b && "json" !== e.responseType && (l = JSON.parse(l)), c(l)) : d("Unable to load " + a + ": " + e.statusText);
|
|
};
|
|
e.send();
|
|
});
|
|
}
|
|
var d = b.AVM2.ABC.AbcFile, a = b.AVM2.ABC.Multiname, c = b.Callback, n = b.ObjectUtilities.createEmptyObject, p = b.Debug.assert, e = b.IndentingWriter;
|
|
g.executeScript = f;
|
|
g.ensureScriptIsExecuted = t;
|
|
(function(a) {
|
|
a[a.PUBLIC_PROPERTIES = 1] = "PUBLIC_PROPERTIES";
|
|
a[a.PUBLIC_METHODS = 2] = "PUBLIC_METHODS";
|
|
a[a.ALL = 3] = "ALL";
|
|
})(g.Glue || (g.Glue = {}));
|
|
g.playerglobalLoadedPromise;
|
|
g.playerglobal;
|
|
var q = function() {
|
|
function a(b, c, d) {
|
|
this.systemDomain = new l(this, null, b, !0);
|
|
this.applicationDomain = new l(this, this.systemDomain, c, !1);
|
|
this.findDefiningAbc = s;
|
|
this._loadAVM1 = d;
|
|
this._loadAVM1Promise = null;
|
|
this.exception = {value:void 0};
|
|
this.exceptions = [];
|
|
this.globals = n();
|
|
}
|
|
a.initialize = function(b, c, d) {
|
|
"undefined" === typeof d && (d = null);
|
|
p(!a.instance);
|
|
a.instance = new a(b, c, d);
|
|
};
|
|
a.currentAbc = function() {
|
|
for (var a = arguments.callee, b = null, c = 0;20 > c && a;c++) {
|
|
var d = a.methodInfo;
|
|
if (d) {
|
|
b = d.abc;
|
|
break;
|
|
}
|
|
a = a.caller;
|
|
}
|
|
return b;
|
|
};
|
|
a.currentDomain = function() {
|
|
var b = a.currentAbc();
|
|
if (null === b) {
|
|
return a.instance.systemDomain;
|
|
}
|
|
p(b && b.applicationDomain, "No domain environment was found on the stack, increase STACK_DEPTH or make sure that a compiled / interpreted function is on the call stack.");
|
|
return b.applicationDomain;
|
|
};
|
|
a.isPlayerglobalLoaded = function() {
|
|
return!!g.playerglobal;
|
|
};
|
|
a.prototype.loadAVM1 = function() {
|
|
var a = this._loadAVM1;
|
|
p(a);
|
|
this._loadAVM1Promise || (this._loadAVM1Promise = new Promise(function(b) {
|
|
a(b);
|
|
}));
|
|
return this._loadAVM1Promise;
|
|
};
|
|
a.loadPlayerglobal = function(a, b) {
|
|
if (g.playerglobalLoadedPromise) {
|
|
return Promise.reject("Playerglobal is already loaded");
|
|
}
|
|
g.playerglobalLoadedPromise = Promise.all([m(a, "arraybuffer"), m(b, "json")]).then(function(a) {
|
|
g.playerglobal = {abcs:a[0], map:Object.create(null), scripts:Object.create(null)};
|
|
a = a[1];
|
|
for (var b = 0;b < a.length;b++) {
|
|
var c = a[b];
|
|
g.playerglobal.scripts[c.name] = c;
|
|
if ("string" === typeof c.defs) {
|
|
g.playerglobal.map[c.defs] = c.name;
|
|
} else {
|
|
for (var h = 0;h < c.defs.length;h++) {
|
|
g.playerglobal.map[c.defs[h]] = c.name;
|
|
}
|
|
}
|
|
}
|
|
}, function(a) {
|
|
console.error(a);
|
|
});
|
|
return g.playerglobalLoadedPromise;
|
|
};
|
|
a.prototype.notifyConstruct = function(a, b) {
|
|
};
|
|
a.getStackTrace = function() {
|
|
b.Debug.somewhatImplemented("getStackTrace");
|
|
return b.Debug.backtrace();
|
|
};
|
|
return a;
|
|
}();
|
|
g.AVM2 = q;
|
|
var l = function() {
|
|
function d(a, h, e, l) {
|
|
p(a instanceof q);
|
|
p(b.isNullOrUndefined(h) || h instanceof d);
|
|
this.vm = a;
|
|
this.abcs = [];
|
|
this.loadedAbcs = {};
|
|
this.loadedClasses = [];
|
|
this.classCache = n();
|
|
this.scriptCache = n();
|
|
this.classInfoCache = n();
|
|
this.base = h;
|
|
this.allowNatives = l;
|
|
this.mode = e;
|
|
this.onMessage = new c;
|
|
this.system = h ? h.system : this;
|
|
}
|
|
d.passthroughCallable = function(a) {
|
|
return{call:function(b) {
|
|
Array.prototype.shift.call(arguments);
|
|
return a.asApply(b, arguments);
|
|
}, apply:function(b, c) {
|
|
return a.asApply(b, c);
|
|
}};
|
|
};
|
|
d.coerceCallable = function(a) {
|
|
return{call:function(b, c) {
|
|
return g.asCoerce(a, c);
|
|
}, apply:function(b, c) {
|
|
return g.asCoerce(a, c[0]);
|
|
}};
|
|
};
|
|
d.prototype.getType = function(a) {
|
|
return this.getProperty(a, !0, !0);
|
|
};
|
|
d.prototype.getProperty = function(c, h, d) {
|
|
if (d = this.findDefiningScript(c, d)) {
|
|
return d.script.executing ? d.script.global[a.getQualifiedName(d.trait.name)] : void 0;
|
|
}
|
|
if (h) {
|
|
return b.Debug.unexpected("Cannot find property " + c);
|
|
}
|
|
};
|
|
d.prototype.getClass = function(c, h) {
|
|
"undefined" === typeof h && (h = !0);
|
|
var d = this.classCache, e = d[c];
|
|
e || (e = d[c] = this.getProperty(a.fromSimpleName(c), h, !0));
|
|
e && p(e instanceof b.AVM2.AS.ASClass);
|
|
return e;
|
|
};
|
|
d.prototype.findDomainProperty = function(a, c, d) {
|
|
b.AVM2.Runtime.traceDomain.value && log("ApplicationDomain.findDomainProperty: " + a);
|
|
if (d = this.findDefiningScript(a, d)) {
|
|
return d.script.global;
|
|
}
|
|
if (c) {
|
|
return b.Debug.unexpected("Cannot find property " + a);
|
|
}
|
|
};
|
|
d.prototype.findClassInfo = function(b) {
|
|
var c;
|
|
if (a.isQName(b)) {
|
|
c = a.getQualifiedName(b);
|
|
var d = this.classInfoCache[c];
|
|
} else {
|
|
d = this.classInfoCache[b.runtimeId];
|
|
}
|
|
if (d || this.base && (d = this.base.findClassInfo(b))) {
|
|
return d;
|
|
}
|
|
for (var d = this.abcs, e = 0;e < d.length;e++) {
|
|
for (var l = d[e], l = l.scripts, n = 0;n < l.length;n++) {
|
|
for (var f = l[n].traits, p = 0;p < f.length;p++) {
|
|
var g = f[p];
|
|
if (g.isClass()) {
|
|
var q = a.getQualifiedName(g.name);
|
|
if (c) {
|
|
if (q === c) {
|
|
return this.classInfoCache[c] = g.classInfo;
|
|
}
|
|
} else {
|
|
for (var m = 0, k = b.namespaces.length;m < k;m++) {
|
|
var u = b.getQName(m);
|
|
if (q === a.getQualifiedName(u)) {
|
|
return this.classInfoCache[u] = g.classInfo;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!this.base && this.vm.findDefiningAbc && (l = this.vm.findDefiningAbc(b), null !== l && !this.loadedAbcs[l.name])) {
|
|
return this.loadedAbcs[l.name] = !0, this.loadAbc(l), this.findClassInfo(b);
|
|
}
|
|
};
|
|
d.prototype.findDefiningScript = function(c, h) {
|
|
var d = this.scriptCache[c.runtimeId];
|
|
if (d && (d.script.executed || !h) || this.base && (d = this.base.findDefiningScript(c, h))) {
|
|
return d;
|
|
}
|
|
k.countTimeline("ApplicationDomain: findDefiningScript");
|
|
for (var d = this.abcs, e = 0;e < d.length;e++) {
|
|
for (var l = d[e], l = l.scripts, n = 0;n < l.length;n++) {
|
|
var f = l[n], p = f.traits;
|
|
if (c instanceof a) {
|
|
for (var g = 0;g < p.length;g++) {
|
|
var q = p[g];
|
|
if (c.hasQName(q.name)) {
|
|
return h && t(f, String(q.name)), this.scriptCache[c.runtimeId] = {script:f, trait:q};
|
|
}
|
|
}
|
|
} else {
|
|
b.Debug.unexpected();
|
|
}
|
|
}
|
|
}
|
|
if (!this.base && this.vm.findDefiningAbc && (l = this.vm.findDefiningAbc(c), null !== l && !this.loadedAbcs[l.name])) {
|
|
return this.loadedAbcs[l.name] = !0, this.loadAbc(l), this.findDefiningScript(c, h);
|
|
}
|
|
};
|
|
d.prototype.compileAbc = function(a, c) {
|
|
b.AVM2.Compiler.compileAbc(a, c);
|
|
};
|
|
d.prototype.executeAbc = function(a) {
|
|
this.loadAbc(a);
|
|
f(a.lastScript);
|
|
};
|
|
d.prototype.loadAbc = function(a) {
|
|
b.AVM2.Runtime.traceExecution.value && log("Loading: " + a.name);
|
|
a.applicationDomain = this;
|
|
g.GlobalMultinameResolver.loadAbc(a);
|
|
this.abcs.push(a);
|
|
this.base || (k.AS.initialize(this), b.AVM2.Verifier.Type.initializeTypes(this));
|
|
};
|
|
d.prototype.broadcastMessage = function(a, b, c) {
|
|
try {
|
|
this.onMessage.notify1(a, {data:b, origin:c, source:this});
|
|
} catch (d) {
|
|
throw q.instance.exceptions.push({source:a, message:d.message, stack:d.stack}), d;
|
|
}
|
|
};
|
|
d.prototype.traceLoadedClasses = function() {
|
|
var a = new e;
|
|
[b.ArrayUtilities.last(this.loadedClasses)].forEach(function(c) {
|
|
c !== b.AVM2.AS.ASClass && c.trace(a);
|
|
});
|
|
};
|
|
return d;
|
|
}();
|
|
g.ApplicationDomain = l;
|
|
var u = function() {
|
|
function a(b) {
|
|
this.compartment = newGlobal("new-compartment");
|
|
this.compartment.homePath = homePath;
|
|
this.compartment.release = !1;
|
|
this.compartment.eval(snarf(b));
|
|
}
|
|
a.prototype.initializeShell = function(a, b) {
|
|
var c = this.compartment;
|
|
c.AVM2.initialize(a, b);
|
|
c.AVM2.instance.systemDomain.executeAbc(c.grabAbc(homePath + "src/avm2/generated/builtin/builtin.abc"));
|
|
c.AVM2.instance.systemDomain.executeAbc(c.grabAbc(homePath + "src/avm2/generated/shell/shell.abc"));
|
|
this.systemDomain = c.AVM2.instance.systemDomain;
|
|
this.applicationDomain = c.AVM2.instance.applicationDomain;
|
|
};
|
|
return a;
|
|
}();
|
|
g.SecurityDomain = u;
|
|
})(k.Runtime || (k.Runtime = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Glue = Shumway.AVM2.Runtime.Glue, ApplicationDomain = Shumway.AVM2.Runtime.ApplicationDomain, AVM2 = Shumway.AVM2.Runtime.AVM2, EXECUTION_MODE = Shumway.AVM2.Runtime.ExecutionMode;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(a) {
|
|
return a.holder instanceof m ? "static " + a.holder.instanceInfo.name.getOriginalName() + "::" + a.name.getOriginalName() : a.holder instanceof d ? a.holder.name.getOriginalName() + "::" + a.name.getOriginalName() : a.name.getOriginalName();
|
|
}
|
|
function t(b) {
|
|
a(b && "function" === typeof b);
|
|
return b.isTrampoline;
|
|
}
|
|
var s = b.AVM2.ABC.Multiname, m = b.AVM2.ABC.ClassInfo, d = b.AVM2.ABC.InstanceInfo, a = b.Debug.assert, c = b.ObjectUtilities.defineReadOnlyProperty, n = b.FunctionUtilities.bindSafely, p = 1, e = 1;
|
|
g.getMethodOverrideKey = f;
|
|
g.checkMethodOverrides = function(a) {
|
|
if (a.name && (a = f(a), a in g.VM_METHOD_OVERRIDES)) {
|
|
return b.Debug.warning("Overriding Method: " + a), g.VM_METHOD_OVERRIDES[a];
|
|
}
|
|
};
|
|
g.makeTrampoline = function(d, e, n, f, r, h) {
|
|
return function() {
|
|
function m() {
|
|
k.countTimeline("Executing Trampoline");
|
|
1 <= b.AVM2.Runtime.traceExecution.value && (callWriter.writeLn("Trampoline: " + h), 3 <= b.AVM2.Runtime.traceExecution.value && log("Trampolining"));
|
|
s || (s = g.getTraitFunction(d, e, n), g.patch(f, s), d = e = n = f = null, a(s));
|
|
return s.asApply(this, arguments);
|
|
}
|
|
var s = null;
|
|
m.trigger = function() {
|
|
k.countTimeline("Triggering Trampoline");
|
|
s || (s = g.getTraitFunction(d, e, n), g.patch(f, s), d = e = n = f = null, a(s));
|
|
};
|
|
m.isTrampoline = !0;
|
|
m.debugName = "Trampoline #" + p++;
|
|
c(m, g.VM_LENGTH, r);
|
|
return m;
|
|
}();
|
|
};
|
|
g.makeMemoizer = function(d, l) {
|
|
function f() {
|
|
k.countTimeline("Runtime: Memoizing");
|
|
3 <= b.AVM2.Runtime.traceExecution.value && log("Memoizing: " + d);
|
|
1 < b.AVM2.Runtime.traceCallExecution.value && callWriter.writeLn("Memoizing: " + d);
|
|
if (g.isNativePrototype(this)) {
|
|
return k.countTimeline("Runtime: Method Closures"), n(l.value, this);
|
|
}
|
|
t(l.value) && l.value.trigger();
|
|
a(!t(l.value), "We should avoid binding trampolines.");
|
|
var e = null;
|
|
if (this instanceof b.AVM2.AS.ASClass) {
|
|
return k.countTimeline("Runtime: Static Method Closures"), e = n(l.value, this), c(this, d, e), e;
|
|
}
|
|
if (Object.prototype.hasOwnProperty.call(this, d)) {
|
|
if (Object.getOwnPropertyDescriptor(this, d).get) {
|
|
return k.countTimeline("Runtime: Method Closures"), n(l.value, this);
|
|
}
|
|
k.countTimeline("Runtime: Unpatched Memoizer");
|
|
return this[d];
|
|
}
|
|
e = n(l.value, this);
|
|
e.methodInfo = l.value.methodInfo;
|
|
c(e, s.getPublicQualifiedName("prototype"), null);
|
|
c(this, d, e);
|
|
return e;
|
|
}
|
|
k.countTimeline("Runtime: Memoizers");
|
|
f.isMemoizer = !0;
|
|
f.debugName = "Memoizer #" + e++;
|
|
return f;
|
|
};
|
|
g.isMemoizer = function(b) {
|
|
a(b && "function" === typeof b);
|
|
return b.isMemoizer;
|
|
};
|
|
})(k.Runtime || (k.Runtime = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
function g(a, b, c) {
|
|
c.flags = b.flags;
|
|
c.name = b.isRuntimeName() ? a.pop() : b.name;
|
|
c.namespaces = b.isRuntimeNamespace() ? [a.pop()] : b.namespaces;
|
|
}
|
|
var f = b.AVM2.Runtime.Scope, t = b.AVM2.Runtime.asCoerceByMultiname, s = b.AVM2.Runtime.asGetSlot, m = b.AVM2.Runtime.asSetSlot, d = b.AVM2.Runtime.asCoerce, a = b.AVM2.Runtime.asCoerceString, c = b.AVM2.Runtime.asAsType, n = b.AVM2.Runtime.asTypeOf, p = b.AVM2.Runtime.asIsInstanceOf, e = b.AVM2.Runtime.asIsType, q = b.AVM2.Runtime.applyType, l = b.AVM2.Runtime.createFunction, u = b.AVM2.Runtime.createClass, w = b.AVM2.Runtime.getDescendants, r = b.AVM2.Runtime.checkFilter, h = b.AVM2.Runtime.asAdd,
|
|
x = b.AVM2.Runtime.translateError, y = b.AVM2.Runtime.asCreateActivation, G = b.AVM2.Runtime.sliceArguments, I = b.ObjectUtilities.boxValue, C = b.ArrayUtilities.popManyInto, E = b.AVM2.Runtime.construct, O = b.AVM2.ABC.Multiname, K = b.Debug.assert, F = b.AVM2.Runtime.HasNext2Info, J = function() {
|
|
function a(b) {
|
|
this.parent = b;
|
|
this.stack = [];
|
|
this.isWith = [];
|
|
}
|
|
a.prototype.push = function(a, b) {
|
|
this.stack.push(a);
|
|
this.isWith.push(!!b);
|
|
};
|
|
a.prototype.get = function(a) {
|
|
return this.stack[a];
|
|
};
|
|
a.prototype.clear = function() {
|
|
this.stack.length = 0;
|
|
this.isWith.length = 0;
|
|
};
|
|
a.prototype.pop = function() {
|
|
this.isWith.pop();
|
|
this.stack.pop();
|
|
};
|
|
a.prototype.topScope = function() {
|
|
this.scopes || (this.scopes = []);
|
|
for (var a = this.parent, b = 0;b < this.stack.length;b++) {
|
|
var c = this.stack[b], h = this.isWith[b], d = this.scopes[b];
|
|
d && d.parent === a && d.object === c && d.isWith === h || (d = this.scopes[b] = new f(a, c, h));
|
|
a = d;
|
|
}
|
|
return a;
|
|
};
|
|
return a;
|
|
}(), A = function() {
|
|
function f() {
|
|
}
|
|
f.interpretMethod = function(f, B, A, L) {
|
|
K(B.analysis);
|
|
k.countTimeline("Interpret Method");
|
|
var M = B.abc, V = M.constantPool.ints, Q = M.constantPool.uints, U = M.constantPool.doubles, S = M.constantPool.strings, aa = M.methods, $ = M.constantPool.multinames, ea = M.applicationDomain, Z = B.exceptions;
|
|
f = [f];
|
|
for (var v = [], X = new J(A), ba = B.parameters.length, R = L.length, H, Y = 0;Y < ba;Y++) {
|
|
var ga = B.parameters[Y];
|
|
H = Y < R ? L[Y] : ga.value;
|
|
ga.type && !ga.type.isAnyName() && (H = t(B, ga.type, H));
|
|
f.push(H);
|
|
}
|
|
B.needsRest() ? f.push(G(L, ba)) : B.needsArguments() && f.push(G(L, 0));
|
|
L = B.analysis.bytecodes;
|
|
var ca, ka, W, ha, da, ja, ba = [], R = O.TEMPORARY, ga = [], N = 0, ma = L.length;
|
|
a: for (;N < ma;) {
|
|
try {
|
|
var T = L[N], oa = T.op;
|
|
switch(oa | 0) {
|
|
case 3:
|
|
throw v.pop();;
|
|
case 4:
|
|
g(v, $[T.index], R);
|
|
v.push(v.pop().asGetSuper(A, R.namespaces, R.name, R.flags));
|
|
break;
|
|
case 5:
|
|
H = v.pop();
|
|
g(v, $[T.index], R);
|
|
v.pop().asSetSuper(A, R.namespaces, R.name, R.flags, H);
|
|
break;
|
|
case 8:
|
|
f[T.index] = void 0;
|
|
break;
|
|
case 12:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da < ja ? N + 1 : T.offset;
|
|
continue;
|
|
case 24:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da >= ja ? T.offset : N + 1;
|
|
continue;
|
|
case 13:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da <= ja ? N + 1 : T.offset;
|
|
continue;
|
|
case 23:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da > ja ? T.offset : N + 1;
|
|
continue;
|
|
case 14:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da > ja ? N + 1 : T.offset;
|
|
continue;
|
|
case 22:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da <= ja ? T.offset : N + 1;
|
|
continue;
|
|
case 15:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da >= ja ? N + 1 : T.offset;
|
|
continue;
|
|
case 21:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da < ja ? T.offset : N + 1;
|
|
continue;
|
|
case 16:
|
|
N = T.offset;
|
|
continue;
|
|
case 17:
|
|
N = v.pop() ? T.offset : N + 1;
|
|
continue;
|
|
case 18:
|
|
N = v.pop() ? N + 1 : T.offset;
|
|
continue;
|
|
case 19:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da == ja ? T.offset : N + 1;
|
|
continue;
|
|
case 20:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da != ja ? T.offset : N + 1;
|
|
continue;
|
|
case 25:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da === ja ? T.offset : N + 1;
|
|
continue;
|
|
case 26:
|
|
ja = v.pop();
|
|
da = v.pop();
|
|
N = da !== ja ? T.offset : N + 1;
|
|
continue;
|
|
case 27:
|
|
ka = v.pop();
|
|
if (0 > ka || ka >= T.offsets.length) {
|
|
ka = T.offsets.length - 1;
|
|
}
|
|
N = T.offsets[ka];
|
|
continue;
|
|
case 28:
|
|
X.push(I(v.pop()), !0);
|
|
break;
|
|
case 29:
|
|
X.pop();
|
|
break;
|
|
case 30:
|
|
ka = v.pop();
|
|
v[v.length - 1] = I(v[v.length - 1]).asNextName(ka);
|
|
break;
|
|
case 35:
|
|
ka = v.pop();
|
|
v[v.length - 1] = I(v[v.length - 1]).asNextValue(ka);
|
|
break;
|
|
case 50:
|
|
var pa = ga[N] || (ga[N] = new F(null, 0));
|
|
ca = f[T.object];
|
|
ka = f[T.index];
|
|
pa.object = ca;
|
|
pa.index = ka;
|
|
Object(ca).asHasNext2(pa);
|
|
f[T.object] = pa.object;
|
|
f[T.index] = pa.index;
|
|
v.push(!!pa.index);
|
|
break;
|
|
case 32:
|
|
v.push(null);
|
|
break;
|
|
case 33:
|
|
v.push(void 0);
|
|
break;
|
|
case 36:
|
|
;
|
|
case 37:
|
|
v.push(T.value);
|
|
break;
|
|
case 44:
|
|
v.push(S[T.index]);
|
|
break;
|
|
case 45:
|
|
v.push(V[T.index]);
|
|
break;
|
|
case 46:
|
|
v.push(Q[T.index]);
|
|
break;
|
|
case 47:
|
|
v.push(U[T.index]);
|
|
break;
|
|
case 38:
|
|
v.push(!0);
|
|
break;
|
|
case 39:
|
|
v.push(!1);
|
|
break;
|
|
case 40:
|
|
v.push(NaN);
|
|
break;
|
|
case 41:
|
|
v.pop();
|
|
break;
|
|
case 42:
|
|
v.push(v[v.length - 1]);
|
|
break;
|
|
case 43:
|
|
ca = v[v.length - 1];
|
|
v[v.length - 1] = v[v.length - 2];
|
|
v[v.length - 2] = ca;
|
|
break;
|
|
case 48:
|
|
X.push(I(v.pop()), !1);
|
|
break;
|
|
case 64:
|
|
v.push(l(aa[T.index], X.topScope(), !0, !1));
|
|
break;
|
|
case 65:
|
|
C(v, T.argCount, ba);
|
|
ca = v.pop();
|
|
v[v.length - 1] = v[v.length - 1].asApply(ca, ba);
|
|
break;
|
|
case 66:
|
|
C(v, T.argCount, ba);
|
|
v[v.length - 1] = E(v[v.length - 1], ba);
|
|
break;
|
|
case 71:
|
|
return;
|
|
case 72:
|
|
return B.returnType ? t(B, B.returnType, v.pop()) : v.pop();
|
|
case 73:
|
|
C(v, T.argCount, ba);
|
|
ca = v.pop();
|
|
A.object.baseClass.instanceConstructorNoInitialize.apply(ca, ba);
|
|
break;
|
|
case 74:
|
|
C(v, T.argCount, ba);
|
|
g(v, $[T.index], R);
|
|
ca = I(v[v.length - 1]);
|
|
ca = ca.asConstructProperty(R.namespaces, R.name, R.flags, ba);
|
|
v[v.length - 1] = ca;
|
|
break;
|
|
case 75:
|
|
b.Debug.notImplemented("OP.callsuperid");
|
|
break;
|
|
case 76:
|
|
;
|
|
case 70:
|
|
;
|
|
case 79:
|
|
C(v, T.argCount, ba);
|
|
g(v, $[T.index], R);
|
|
ha = I(v.pop()).asCallProperty(R.namespaces, R.name, R.flags, 76 === oa, ba);
|
|
79 !== oa && v.push(ha);
|
|
break;
|
|
case 69:
|
|
;
|
|
case 78:
|
|
C(v, T.argCount, ba);
|
|
g(v, $[T.index], R);
|
|
ha = v.pop().asCallSuper(A, R.namespaces, R.name, R.flags, ba);
|
|
78 !== oa && v.push(ha);
|
|
break;
|
|
case 83:
|
|
C(v, T.argCount, ba);
|
|
v[v.length - 1] = q(B, v[v.length - 1], ba);
|
|
break;
|
|
case 85:
|
|
ca = {};
|
|
for (Y = 0;Y < T.argCount;Y++) {
|
|
H = v.pop(), ca[O.getPublicQualifiedName(v.pop())] = H;
|
|
}
|
|
v.push(ca);
|
|
break;
|
|
case 86:
|
|
ca = [];
|
|
C(v, T.argCount, ba);
|
|
ca.push.apply(ca, ba);
|
|
v.push(ca);
|
|
break;
|
|
case 87:
|
|
K(B.needsActivation());
|
|
v.push(y(B));
|
|
break;
|
|
case 88:
|
|
v[v.length - 1] = u(M.classes[T.index], v[v.length - 1], X.topScope());
|
|
break;
|
|
case 89:
|
|
g(v, $[T.index], R);
|
|
v.push(w(v.pop(), R));
|
|
break;
|
|
case 90:
|
|
K(Z[T.index].scopeObject);
|
|
v.push(Z[T.index].scopeObject);
|
|
break;
|
|
case 94:
|
|
;
|
|
case 93:
|
|
g(v, $[T.index], R);
|
|
v.push(X.topScope().findScopeProperty(R.namespaces, R.name, R.flags, B, 93 === oa, !1));
|
|
break;
|
|
case 96:
|
|
W = $[T.index];
|
|
ca = X.topScope().findScopeProperty(W.namespaces, W.name, W.flags, B, !0, !1);
|
|
v.push(ca.asGetProperty(W.namespaces, W.name, W.flags));
|
|
break;
|
|
case 104:
|
|
;
|
|
case 97:
|
|
H = v.pop();
|
|
g(v, $[T.index], R);
|
|
I(v.pop()).asSetProperty(R.namespaces, R.name, R.flags, H);
|
|
break;
|
|
case 98:
|
|
v.push(f[T.index]);
|
|
break;
|
|
case 99:
|
|
f[T.index] = v.pop();
|
|
break;
|
|
case 100:
|
|
v.push(A.global.object);
|
|
break;
|
|
case 101:
|
|
v.push(X.get(T.index));
|
|
break;
|
|
case 102:
|
|
g(v, $[T.index], R);
|
|
v[v.length - 1] = I(v[v.length - 1]).asGetProperty(R.namespaces, R.name, R.flags);
|
|
break;
|
|
case 106:
|
|
g(v, $[T.index], R);
|
|
v[v.length - 1] = I(v[v.length - 1]).asDeleteProperty(R.namespaces, R.name, R.flags);
|
|
break;
|
|
case 108:
|
|
v[v.length - 1] = s(v[v.length - 1], T.index);
|
|
break;
|
|
case 109:
|
|
H = v.pop();
|
|
ca = v.pop();
|
|
m(ca, T.index, H);
|
|
break;
|
|
case 112:
|
|
v[v.length - 1] += "";
|
|
break;
|
|
case 131:
|
|
;
|
|
case 115:
|
|
v[v.length - 1] |= 0;
|
|
break;
|
|
case 136:
|
|
;
|
|
case 116:
|
|
v[v.length - 1] >>>= 0;
|
|
break;
|
|
case 132:
|
|
;
|
|
case 117:
|
|
v[v.length - 1] = +v[v.length - 1];
|
|
break;
|
|
case 129:
|
|
;
|
|
case 118:
|
|
v[v.length - 1] = !!v[v.length - 1];
|
|
break;
|
|
case 120:
|
|
v[v.length - 1] = r(v[v.length - 1]);
|
|
break;
|
|
case 128:
|
|
v[v.length - 1] = d(ea.getType($[T.index]), v[v.length - 1]);
|
|
break;
|
|
case 130:
|
|
break;
|
|
case 133:
|
|
v[v.length - 1] = a(v[v.length - 1]);
|
|
break;
|
|
case 134:
|
|
v[v.length - 2] = c(ea.getType($[T.index]), v[v.length - 1]);
|
|
break;
|
|
case 135:
|
|
v[v.length - 2] = c(v.pop(), v[v.length - 1]);
|
|
break;
|
|
case 137:
|
|
ca = v[v.length - 1];
|
|
v[v.length - 1] = void 0 == ca ? null : ca;
|
|
break;
|
|
case 144:
|
|
v[v.length - 1] = -v[v.length - 1];
|
|
break;
|
|
case 145:
|
|
++v[v.length - 1];
|
|
break;
|
|
case 146:
|
|
++f[T.index];
|
|
break;
|
|
case 147:
|
|
--v[v.length - 1];
|
|
break;
|
|
case 148:
|
|
--f[T.index];
|
|
break;
|
|
case 149:
|
|
v[v.length - 1] = n(v[v.length - 1]);
|
|
break;
|
|
case 150:
|
|
v[v.length - 1] = !v[v.length - 1];
|
|
break;
|
|
case 151:
|
|
v[v.length - 1] = ~v[v.length - 1];
|
|
break;
|
|
case 160:
|
|
v[v.length - 2] = h(v[v.length - 2], v.pop());
|
|
break;
|
|
case 161:
|
|
v[v.length - 2] -= v.pop();
|
|
break;
|
|
case 162:
|
|
v[v.length - 2] *= v.pop();
|
|
break;
|
|
case 163:
|
|
v[v.length - 2] /= v.pop();
|
|
break;
|
|
case 164:
|
|
v[v.length - 2] %= v.pop();
|
|
break;
|
|
case 165:
|
|
v[v.length - 2] <<= v.pop();
|
|
break;
|
|
case 166:
|
|
v[v.length - 2] >>= v.pop();
|
|
break;
|
|
case 167:
|
|
v[v.length - 2] >>>= v.pop();
|
|
break;
|
|
case 168:
|
|
v[v.length - 2] &= v.pop();
|
|
break;
|
|
case 169:
|
|
v[v.length - 2] |= v.pop();
|
|
break;
|
|
case 170:
|
|
v[v.length - 2] ^= v.pop();
|
|
break;
|
|
case 171:
|
|
v[v.length - 2] = v[v.length - 2] == v.pop();
|
|
break;
|
|
case 172:
|
|
v[v.length - 2] = v[v.length - 2] === v.pop();
|
|
break;
|
|
case 173:
|
|
v[v.length - 2] = v[v.length - 2] < v.pop();
|
|
break;
|
|
case 174:
|
|
v[v.length - 2] = v[v.length - 2] <= v.pop();
|
|
break;
|
|
case 175:
|
|
v[v.length - 2] = v[v.length - 2] > v.pop();
|
|
break;
|
|
case 176:
|
|
v[v.length - 2] = v[v.length - 2] >= v.pop();
|
|
break;
|
|
case 177:
|
|
v[v.length - 2] = p(v.pop(), v[v.length - 1]);
|
|
break;
|
|
case 178:
|
|
v[v.length - 1] = e(ea.getType($[T.index]), v[v.length - 1]);
|
|
break;
|
|
case 179:
|
|
v[v.length - 2] = e(v.pop(), v[v.length - 1]);
|
|
break;
|
|
case 180:
|
|
v[v.length - 2] = I(v.pop()).asHasProperty(null, v[v.length - 1]);
|
|
break;
|
|
case 192:
|
|
v[v.length - 1] = (v[v.length - 1] | 0) + 1;
|
|
break;
|
|
case 193:
|
|
v[v.length - 1] = (v[v.length - 1] | 0) - 1;
|
|
break;
|
|
case 194:
|
|
f[T.index] = (f[T.index] | 0) + 1;
|
|
break;
|
|
case 195:
|
|
f[T.index] = (f[T.index] | 0) - 1;
|
|
break;
|
|
case 196:
|
|
v[v.length - 1] = ~v[v.length - 1];
|
|
break;
|
|
case 197:
|
|
v[v.length - 2] = v[v.length - 2] + v.pop() | 0;
|
|
break;
|
|
case 198:
|
|
v[v.length - 2] = v[v.length - 2] - v.pop() | 0;
|
|
break;
|
|
case 199:
|
|
v[v.length - 2] = v[v.length - 2] * v.pop() | 0;
|
|
break;
|
|
case 208:
|
|
;
|
|
case 209:
|
|
;
|
|
case 210:
|
|
;
|
|
case 211:
|
|
v.push(f[oa - 208]);
|
|
break;
|
|
case 212:
|
|
;
|
|
case 213:
|
|
;
|
|
case 214:
|
|
;
|
|
case 215:
|
|
f[oa - 212] = v.pop();
|
|
break;
|
|
case 6:
|
|
b.AVM2.AS.ASXML.defaultNamespace = S[T.index];
|
|
break;
|
|
case 7:
|
|
b.AVM2.AS.ASXML.defaultNamespace = v.pop();
|
|
break;
|
|
case 239:
|
|
;
|
|
case 240:
|
|
;
|
|
case 241:
|
|
break;
|
|
default:
|
|
b.Debug.notImplemented(b.AVM2.opcodeName(oa));
|
|
}
|
|
N++;
|
|
} catch (na) {
|
|
if (1 > Z.length) {
|
|
throw na;
|
|
}
|
|
for (var na = x(ea, na), Y = 0, fa = Z.length;Y < fa;Y++) {
|
|
var sa = Z[Y];
|
|
if (N >= sa.start && N <= sa.end && (!sa.typeName || ea.getType(sa.typeName).isType(na))) {
|
|
v.length = 0;
|
|
v.push(na);
|
|
X.clear();
|
|
N = sa.offset;
|
|
continue a;
|
|
}
|
|
}
|
|
throw na;
|
|
}
|
|
}
|
|
};
|
|
return f;
|
|
}();
|
|
k.Interpreter = A;
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
b.VM_METHOD_OVERRIDES["static mochi.as3.MochiServices::connect"] = function() {
|
|
};
|
|
b.VM_METHOD_OVERRIDES["static MochiBot::track"] = function() {
|
|
};
|
|
b.VM_METHOD_OVERRIDES["com.midasplayer.debug.DebugLog::trace"] = function(b) {
|
|
log(b);
|
|
};
|
|
b.VM_METHOD_OVERRIDES["com.midasplayer.engine.comm.DebugGameComm::getGameData"] = function() {
|
|
return'<gamedata randomseed="554884453" version="1">\n<musicOn>true</musicOn>\n<soundOn>true</soundOn>\n<isShortGame>false</isShortGame>\n<booster_1>0</booster_1>\n<booster_2>0</booster_2>\n<booster_3>0</booster_3>\n<booster_4>0</booster_4>\n<booster_5>0</booster_5>\n<bestScore>0</bestScore>\n<bestChain>0</bestChain>\n<bestLevel>0</bestLevel>\n<bestCrushed>0</bestCrushed>\n<bestMixed>0</bestMixed>\n<text id="outro.crushed">Candy crushed</text>\n<text id="outro.bestever">best ever</text>\n<text id="outro.trophy.two">scored {0} in one game</text>\n<text id="outro.combo_color_color">All Clear Created</text>\n<text id="outro.trophy.one">crushed {0} candy in one game</text>\n<text id="outro.score">Score</text>\n<text id="outro.opengame">Please register to play the full game</text>\n<text id="outro.chain">Longest chain</text>\n<text id="outro.time">Game ends in {0} seconds</text>\n<text id="outro.combo_color_line">Super Stripes Created</text>\n<text id="game.nomoves">No more moves!</text>\n<text id="outro.combo_wrapper_line">Mega-Candy Created</text>\n<text id="intro.time">Game starts in {0} seconds</text>\n<text id="outro.now">now</text>\n<text id="outro.level">Level reached</text>\n<text id="outro.title">Game Over</text>\n<text id="intro.info1">Match 3 Candy of the same colour to crush them. Matching 4 or 5 in different formations generates special sweets that are extra tasty.</text>\n<text id="intro.info2">You can also combine the special sweets for additional effects by switching them with each other. Try these combinations for a taste you will not forget: </text>\n<text id="outro.combo_color_wrapper">Double Colour Bombs Created</text>\n<text id="outro.trophy.three">made {0} combined candy in one game</text>\n<text id="intro.title">Play like this:</text>\n</gamedata>';
|
|
};
|
|
b.VM_METHOD_OVERRIDES["com.antkarlov.Preloader::com.antkarlov:Preloader.isUrl"] = function() {
|
|
return!0;
|
|
};
|
|
b.VM_METHOD_OVERRIDES["static com.demonsters.debugger.MonsterDebugger::initialize"] = function() {
|
|
};
|
|
b.VM_METHOD_OVERRIDES["com.spilgames.api.core.tracking.TrackConfig::getTrackers"] = function() {
|
|
return[];
|
|
};
|
|
b.VM_METHOD_OVERRIDES["com.spilgames.api.components.TextFields.AutoFitTextFieldEx::com.spilgames.api.components.TextFields:AutoFitTextFieldEx.updateProperties"] = b.VM_METHOD_OVERRIDES["com.spilgames.api.components.TextFields.AutoFitTextFieldEx::com.spilgames.api.components.TextFields:AutoFitTextFieldEx.updateTextSize"] = function() {
|
|
};
|
|
})(b.Runtime || (b.Runtime = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
function g(a, c) {
|
|
if (65535 < c.length) {
|
|
throw "AMF short string exceeded";
|
|
}
|
|
if (c.length) {
|
|
var d = b.StringUtilities.utf8decode(c);
|
|
a.writeByte(d.length >> 8 & 255);
|
|
a.writeByte(d.length & 255);
|
|
for (var e = 0;e < d.length;e++) {
|
|
a.writeByte(d[e]);
|
|
}
|
|
} else {
|
|
a.writeByte(0), a.writeByte(0);
|
|
}
|
|
}
|
|
function f(a) {
|
|
var c = a.readByte() << 8 | a.readByte();
|
|
if (!c) {
|
|
return "";
|
|
}
|
|
for (var d = new Uint8Array(c), e = 0;e < c;e++) {
|
|
d[e] = a.readByte();
|
|
}
|
|
return b.StringUtilities.utf8encode(d);
|
|
}
|
|
function t(a, b) {
|
|
var c = new ArrayBuffer(8), d = new DataView(c);
|
|
d.setFloat64(0, b, !1);
|
|
for (var e = 0;e < c.byteLength;e++) {
|
|
a.writeByte(d.getUint8(e));
|
|
}
|
|
}
|
|
function s(a) {
|
|
for (var b = new ArrayBuffer(8), c = new DataView(b), d = 0;d < b.byteLength;d++) {
|
|
c.setUint8(d, a.readByte());
|
|
}
|
|
return c.getFloat64(0, !1);
|
|
}
|
|
function m(a) {
|
|
var b = a.readByte();
|
|
if (0 === (b & 128)) {
|
|
return b;
|
|
}
|
|
var c = a.readByte();
|
|
if (0 === (c & 128)) {
|
|
return(b & 127) << 7 | c;
|
|
}
|
|
var d = a.readByte();
|
|
if (0 === (d & 128)) {
|
|
return(b & 127) << 14 | (c & 127) << 7 | d;
|
|
}
|
|
a = a.readByte();
|
|
return(b & 127) << 22 | (c & 127) << 15 | (d & 127) << 8 | a;
|
|
}
|
|
function d(a, b) {
|
|
if (0 === (b & 4294967168)) {
|
|
a.writeByte(b & 127);
|
|
} else {
|
|
if (0 === (b & 4294950912)) {
|
|
a.writeByte(128 | b >> 7 & 127), a.writeByte(b & 127);
|
|
} else {
|
|
if (0 === (b & 4292870144)) {
|
|
a.writeByte(128 | b >> 14 & 127), a.writeByte(128 | b >> 7 & 127), a.writeByte(b & 127);
|
|
} else {
|
|
if (0 === (b & 3221225472)) {
|
|
a.writeByte(128 | b >> 22 & 127), a.writeByte(128 | b >> 15 & 127), a.writeByte(128 | b >> 8 & 127), a.writeByte(b & 255);
|
|
} else {
|
|
throw "AMF3 U29 range";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function a(a, c) {
|
|
var d = m(a);
|
|
if (1 === d) {
|
|
return "";
|
|
}
|
|
var e = c.stringsCache || (c.stringsCache = []);
|
|
if (0 === (d & 1)) {
|
|
return e[d >> 1];
|
|
}
|
|
for (var d = d >> 1, l = new Uint8Array(d), n = 0;n < d;n++) {
|
|
l[n] = a.readByte();
|
|
}
|
|
d = b.StringUtilities.utf8encode(l);
|
|
e.push(d);
|
|
return d;
|
|
}
|
|
function c(a, c, e) {
|
|
if ("" === c) {
|
|
a.writeByte(1);
|
|
} else {
|
|
e = e.stringsCache || (e.stringsCache = []);
|
|
var l = e.indexOf(c);
|
|
if (0 <= l) {
|
|
d(a, l << 1);
|
|
} else {
|
|
for (e.push(c), c = b.StringUtilities.utf8decode(c), d(a, 1 | c.length << 1), e = 0;e < c.length;e++) {
|
|
a.writeByte(c[e]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function n(b, c) {
|
|
var d = b.readByte();
|
|
switch(d) {
|
|
case 1:
|
|
return null;
|
|
case 0:
|
|
break;
|
|
case 2:
|
|
return!1;
|
|
case 3:
|
|
return!0;
|
|
case 4:
|
|
return m(b);
|
|
case 5:
|
|
return s(b);
|
|
case 6:
|
|
return a(b, c);
|
|
case 8:
|
|
return new Date(s(b));
|
|
case 10:
|
|
var e = m(b);
|
|
if (0 === (e & 1)) {
|
|
return c.objectsCache[e >> 1];
|
|
}
|
|
if (0 !== (e & 4)) {
|
|
throw "AMF3 Traits-Ext is not supported";
|
|
}
|
|
var l, f;
|
|
if (0 === (e & 2)) {
|
|
l = c.traitsCache[e >> 2], f = l.class;
|
|
} else {
|
|
l = {};
|
|
d = a(b, c);
|
|
f = (l.className = d) && k.aliasesCache.names[d];
|
|
l.class = f;
|
|
l.isDynamic = 0 !== (e & 8);
|
|
l.members = [];
|
|
for (var p = f && f.instanceBindings.slots, d = 0, e = e >> 4;d < e;d++) {
|
|
for (var g = a(b, c), w = null, e = 1;p && e < p.length;e++) {
|
|
if (p[e].name.name === g) {
|
|
w = p[e];
|
|
break;
|
|
}
|
|
}
|
|
l.members.push(w ? q.getQualifiedName(w.name) : q.getPublicQualifiedName(g));
|
|
}
|
|
(c.traitsCache || (c.traitsCache = [])).push(l);
|
|
}
|
|
p = f ? u(f, []) : {};
|
|
(c.objectsCache || (c.objectsCache = [])).push(p);
|
|
for (d = 0;d < l.members.length;d++) {
|
|
f = n(b, c), p[l.members[d]] = f;
|
|
}
|
|
if (l.isDynamic) {
|
|
for (;;) {
|
|
d = a(b, c);
|
|
if (!d.length) {
|
|
break;
|
|
}
|
|
f = n(b, c);
|
|
p.asSetPublicProperty(d, f);
|
|
}
|
|
}
|
|
return p;
|
|
case 9:
|
|
e = m(b);
|
|
if (0 === (e & 1)) {
|
|
return c.objectsCache[e >> 1];
|
|
}
|
|
l = [];
|
|
(c.objectsCache || (c.objectsCache = [])).push(l);
|
|
for (p = e >> 1;;) {
|
|
d = a(b, c);
|
|
if (!d.length) {
|
|
break;
|
|
}
|
|
f = n(b, c);
|
|
l.asSetPublicProperty(d, f);
|
|
}
|
|
for (d = 0;d < p;d++) {
|
|
f = n(b, c), l.asSetPublicProperty(d, f);
|
|
}
|
|
return l;
|
|
default:
|
|
throw "AMF3 Unknown marker " + d;;
|
|
}
|
|
}
|
|
function p(a, b, c) {
|
|
c = c.objectsCache || (c.objectsCache = []);
|
|
var e = c.indexOf(b);
|
|
if (0 > e) {
|
|
return c.push(b), !1;
|
|
}
|
|
d(a, e << 1);
|
|
return!0;
|
|
}
|
|
function e(a, h, n) {
|
|
switch(typeof h) {
|
|
case "boolean":
|
|
a.writeByte(h ? 3 : 2);
|
|
break;
|
|
case "number":
|
|
h === (h | 0) ? (a.writeByte(4), d(a, h)) : (a.writeByte(5), t(a, h));
|
|
break;
|
|
case "undefined":
|
|
a.writeByte(0);
|
|
break;
|
|
case "string":
|
|
a.writeByte(6);
|
|
c(a, h, n);
|
|
break;
|
|
case "object":
|
|
if (null === h) {
|
|
a.writeByte(1);
|
|
} else {
|
|
if (Array.isArray(h)) {
|
|
a.writeByte(9);
|
|
if (p(a, h, n)) {
|
|
break;
|
|
}
|
|
for (var f = 0;f in h;) {
|
|
++f;
|
|
}
|
|
d(a, f << 1 | 1);
|
|
l(h, function(d, h) {
|
|
b.isNumeric(d) && 0 <= d && d < f || (c(a, d, n), e(a, h, n));
|
|
});
|
|
c(a, "", n);
|
|
for (var g = 0;g < f;g++) {
|
|
e(a, h[g], n);
|
|
}
|
|
} else {
|
|
if (h instanceof Date) {
|
|
a.writeByte(8);
|
|
if (p(a, h, n)) {
|
|
break;
|
|
}
|
|
d(a, 1);
|
|
t(a, h.valueOf());
|
|
} else {
|
|
a.writeByte(10);
|
|
if (p(a, h, n)) {
|
|
break;
|
|
}
|
|
var g = !0, m = h.class;
|
|
if (m) {
|
|
var g = !m.classInfo.instanceInfo.isSealed(), u = k.aliasesCache.classes.get(m) || "", w, s = n.traitsCache || (n.traitsCache = []), K = n.traitsInfos || (n.traitsInfos = []), F = s.indexOf(m);
|
|
if (0 > F) {
|
|
var J = m.instanceBindings.slots;
|
|
w = [];
|
|
for (var F = [], A = 1;A < J.length;A++) {
|
|
var B = J[A];
|
|
B.name.getNamespace().isPublic() && (w.push(q.getQualifiedName(B.name)), F.push(B.name.name));
|
|
}
|
|
s.push(m);
|
|
K.push(w);
|
|
m = F.length;
|
|
d(a, (g ? 11 : 3) + (m << 4));
|
|
c(a, u, n);
|
|
for (A = 0;A < m;A++) {
|
|
c(a, F[A], n);
|
|
}
|
|
} else {
|
|
w = K[F], m = w.length, d(a, 1 + (F << 2));
|
|
}
|
|
for (A = 0;A < m;A++) {
|
|
e(a, h[w[A]], n);
|
|
}
|
|
} else {
|
|
d(a, 11), c(a, "", n);
|
|
}
|
|
g && (l(h, function(b, d) {
|
|
c(a, b, n);
|
|
e(a, d, n);
|
|
}), c(a, "", n));
|
|
}
|
|
}
|
|
}
|
|
;
|
|
}
|
|
}
|
|
var q = b.AVM2.ABC.Multiname, l = b.AVM2.Runtime.forEachPublicProperty, u = b.AVM2.Runtime.construct;
|
|
(function(a) {
|
|
a[a.NUMBER = 0] = "NUMBER";
|
|
a[a.BOOLEAN = 1] = "BOOLEAN";
|
|
a[a.STRING = 2] = "STRING";
|
|
a[a.OBJECT = 3] = "OBJECT";
|
|
a[a.NULL = 5] = "NULL";
|
|
a[a.UNDEFINED = 6] = "UNDEFINED";
|
|
a[a.REFERENCE = 7] = "REFERENCE";
|
|
a[a.ECMA_ARRAY = 8] = "ECMA_ARRAY";
|
|
a[a.OBJECT_END = 9] = "OBJECT_END";
|
|
a[a.STRICT_ARRAY = 10] = "STRICT_ARRAY";
|
|
a[a.DATE = 11] = "DATE";
|
|
a[a.LONG_STRING = 12] = "LONG_STRING";
|
|
a[a.XML = 15] = "XML";
|
|
a[a.TYPED_OBJECT = 16] = "TYPED_OBJECT";
|
|
a[a.AVMPLUS = 17] = "AVMPLUS";
|
|
})(k.AMF0Marker || (k.AMF0Marker = {}));
|
|
var w = function() {
|
|
function a() {
|
|
}
|
|
a.write = function(a, b) {
|
|
switch(typeof b) {
|
|
case "boolean":
|
|
a.writeByte(1);
|
|
a.writeByte(b ? 1 : 0);
|
|
break;
|
|
case "number":
|
|
a.writeByte(0);
|
|
t(a, b);
|
|
break;
|
|
case "undefined":
|
|
a.writeByte(6);
|
|
break;
|
|
case "string":
|
|
a.writeByte(2);
|
|
g(a, b);
|
|
break;
|
|
case "object":
|
|
null === b ? a.writeByte(5) : (Array.isArray(b) ? (a.writeByte(8), a.writeByte(b.length >>> 24 & 255), a.writeByte(b.length >> 16 & 255), a.writeByte(b.length >> 8 & 255), a.writeByte(b.length & 255), l(b, function(b, c) {
|
|
g(a, b);
|
|
this.write(a, c);
|
|
}, this)) : (a.writeByte(3), l(b, function(b, c) {
|
|
g(a, b);
|
|
this.write(a, c);
|
|
}, this)), a.writeByte(0), a.writeByte(0), a.writeByte(9));
|
|
}
|
|
};
|
|
a.read = function(a) {
|
|
var b = a.readByte();
|
|
switch(b) {
|
|
case 0:
|
|
return s(a);
|
|
case 1:
|
|
return!!a.readByte();
|
|
case 2:
|
|
return f(a);
|
|
case 3:
|
|
for (var c = {};;) {
|
|
b = f(a);
|
|
if (!b.length) {
|
|
break;
|
|
}
|
|
var d = this.read(a);
|
|
c.asSetPublicProperty(b, d);
|
|
}
|
|
if (9 !== a.readByte()) {
|
|
throw "AMF0 End marker is not found";
|
|
}
|
|
return c;
|
|
case 5:
|
|
return null;
|
|
case 6:
|
|
break;
|
|
case 8:
|
|
c = [];
|
|
for (c.length = a.readByte() << 24 | a.readByte() << 16 | a.readByte() << 8 | a.readByte();;) {
|
|
b = f(a);
|
|
if (!b.length) {
|
|
break;
|
|
}
|
|
d = this.read(a);
|
|
c.asSetPublicProperty(b, d);
|
|
}
|
|
if (9 !== a.readByte()) {
|
|
throw "AMF0 End marker is not found";
|
|
}
|
|
return c;
|
|
case 10:
|
|
c = [];
|
|
c.length = a.readByte() << 24 | a.readByte() << 16 | a.readByte() << 8 | a.readByte();
|
|
for (b = 0;b < c.length;b++) {
|
|
c[b] = this.read(a);
|
|
}
|
|
return c;
|
|
case 17:
|
|
return n(a, {});
|
|
default:
|
|
throw "AMF0 Unknown marker " + b;;
|
|
}
|
|
};
|
|
return a;
|
|
}();
|
|
k.AMF0 = w;
|
|
(function(a) {
|
|
a[a.UNDEFINED = 0] = "UNDEFINED";
|
|
a[a.NULL = 1] = "NULL";
|
|
a[a.FALSE = 2] = "FALSE";
|
|
a[a.TRUE = 3] = "TRUE";
|
|
a[a.INTEGER = 4] = "INTEGER";
|
|
a[a.DOUBLE = 5] = "DOUBLE";
|
|
a[a.STRING = 6] = "STRING";
|
|
a[a.XML_DOC = 7] = "XML_DOC";
|
|
a[a.DATE = 8] = "DATE";
|
|
a[a.ARRAY = 9] = "ARRAY";
|
|
a[a.OBJECT = 10] = "OBJECT";
|
|
a[a.XML = 11] = "XML";
|
|
a[a.BYTEARRAY = 12] = "BYTEARRAY";
|
|
a[a.VECTOR_INT = 13] = "VECTOR_INT";
|
|
a[a.VECTOR_UINT = 14] = "VECTOR_UINT";
|
|
a[a.VECTOR_DOUBLE = 15] = "VECTOR_DOUBLE";
|
|
a[a.VECTOR_OBJECT = 16] = "VECTOR_OBJECT";
|
|
a[a.DICTIONARY = 17] = "DICTIONARY";
|
|
})(k.AMF3Marker || (k.AMF3Marker = {}));
|
|
k.aliasesCache = {classes:new WeakMap, names:Object.create(null)};
|
|
w = function() {
|
|
function a() {
|
|
}
|
|
a.write = function(a, b) {
|
|
e(a, b, {});
|
|
};
|
|
a.read = function(a) {
|
|
return n(a, {});
|
|
};
|
|
return a;
|
|
}();
|
|
k.AMF3 = w;
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
console.timeEnd("Load AVM2 Dependencies");
|
|
console.time("Load Compiled Code Cache");
|
|
console.timeEnd("Load Compiled Code Cache");
|
|
console.time("Load Flash TS Dependencies");
|
|
(function(b) {
|
|
function k(a) {
|
|
var b = {};
|
|
a = a.split(",");
|
|
for (var c = 0;c < a.length;c++) {
|
|
b[a[c]] = !0;
|
|
}
|
|
return b;
|
|
}
|
|
var g = /^<([-A-Za-z0-9_]+)((?:\s+[-A-Za-z0-9_]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/, f = /^<\/([-A-Za-z0-9_]+)[^>]*>/, t = /([-A-Za-z0-9_]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g, s = k("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"), m = k("address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul"),
|
|
d = k("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"), a = k("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"), c = k("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"), n = k("script,style");
|
|
b.HTMLParser = function(b, e) {
|
|
function q() {
|
|
return this[this.length - 1];
|
|
}
|
|
function l(b, l, n, f) {
|
|
l = l.toLowerCase();
|
|
if (m[l]) {
|
|
for (;q() && d[q()];) {
|
|
k("", q());
|
|
}
|
|
}
|
|
a[l] && q() == l && k("", l);
|
|
(f = s[l] || !!f) || h.push(l);
|
|
if (e.start) {
|
|
var g = Object.create(null);
|
|
n.replace(t, function(a, b, d, h, e) {
|
|
b = b.toLowerCase();
|
|
g[b] = d ? d : h ? h : e ? e : c[b] ? b : "";
|
|
return a;
|
|
});
|
|
e.start && e.start(l, g, !!f);
|
|
}
|
|
}
|
|
function k(a, b) {
|
|
if (b) {
|
|
for (c = h.length - 1;0 <= c && h[c] != b;c--) {
|
|
}
|
|
} else {
|
|
var c = 0
|
|
}
|
|
if (0 <= c) {
|
|
for (var d = h.length - 1;d >= c;d--) {
|
|
e.end && e.end(h[d]);
|
|
}
|
|
h.length = c;
|
|
}
|
|
}
|
|
for (var w, r, h = [], x = b;b;) {
|
|
r = !0;
|
|
if (q() && n[q()]) {
|
|
b = b.replace(new RegExp("(.*)</" + q() + "[^>]*>"), function(a, b) {
|
|
b = b.replace(/\x3c!--(.*?)--\x3e/g, "$1").replace(/<!\[CDATA\[(.*?)]]\x3e/g, "$1");
|
|
e.chars && e.chars(b);
|
|
return "";
|
|
}), k("", q());
|
|
} else {
|
|
if (0 == b.indexOf("\x3c!--")) {
|
|
w = b.indexOf("--\x3e"), 0 <= w && (e.comment && e.comment(b.substring(4, w)), b = b.substring(w + 3), r = !1);
|
|
} else {
|
|
if (0 == b.indexOf("</")) {
|
|
if (w = b.match(f)) {
|
|
b = b.substring(w[0].length), w[0].replace(f, k), r = !1;
|
|
}
|
|
} else {
|
|
0 == b.indexOf("<") && (w = b.match(g)) && (b = b.substring(w[0].length), w[0].replace(g, l), r = !1);
|
|
}
|
|
}
|
|
r && (w = b.indexOf("<"), r = 0 > w ? b : b.substring(0, w), b = 0 > w ? "" : b.substring(w), e.chars && e.chars(r));
|
|
}
|
|
if (b == x) {
|
|
throw "Parse Error: " + b;
|
|
}
|
|
x = b;
|
|
}
|
|
k();
|
|
};
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
var k = b.Debug.notImplemented, g = b.Debug.somewhatImplemented, f = b.Bounds, t = b.ArrayUtilities.DataBuffer, s = b.ColorUtilities, m = b.AVM2.AS.flash;
|
|
(function(a) {
|
|
a[a.None = 0] = "None";
|
|
a[a.DirtyBounds = 1] = "DirtyBounds";
|
|
a[a.DirtyContent = 2] = "DirtyContent";
|
|
a[a.DirtyStyle = 4] = "DirtyStyle";
|
|
a[a.DirtyFlow = 8] = "DirtyFlow";
|
|
a[a.Dirty = a.DirtyBounds | a.DirtyContent | a.DirtyStyle | a.DirtyFlow] = "Dirty";
|
|
})(b.TextContentFlags || (b.TextContentFlags = {}));
|
|
var d = {lt:"<", gt:">", amp:"&", quot:'"', apos:"'"}, a = function() {
|
|
function a(b) {
|
|
this._id = m.display.DisplayObject.getNextSyncID();
|
|
this._bounds = new f(0, 0, 0, 0);
|
|
this._plainText = "";
|
|
this._autoSize = this._borderColor = this._backgroundColor = 0;
|
|
this._wordWrap = !1;
|
|
this.flags = 0;
|
|
this.defaultTextFormat = b || new m.text.TextFormat;
|
|
this.textRuns = [];
|
|
this.textRunData = new t;
|
|
this.coords = this.matrix = null;
|
|
}
|
|
a.prototype.parseHtml = function(a, c) {
|
|
"undefined" === typeof c && (c = !1);
|
|
var e = "", f = this.textRuns, l = f.length = 0, u = 0, w = this.defaultTextFormat.clone(), r = null, h = [], x;
|
|
b.HTMLParser(a, x = {chars:function(a) {
|
|
for (var c = "", h = 0;h < a.length;h++) {
|
|
var n = a.charAt(h);
|
|
if ("&" !== n) {
|
|
c += n;
|
|
} else {
|
|
if (n = b.StringUtilities.indexOfAny(a, ["&", ";"], h + 1), 0 < n) {
|
|
h = a.substring(h + 1, n);
|
|
if (1 < h.length && "#" === h.charAt(0)) {
|
|
var g = 0, g = 2 < h.length && "x" === h.charAt(1) ? parseInt(h.substring(1)) : parseInt(h.substring(2), 16), c = c + String.fromCharCode(g)
|
|
} else {
|
|
void 0 !== d[h] ? c += d[h] : b.Debug.unexpected(h);
|
|
}
|
|
h = n;
|
|
} else {
|
|
for (var p in d) {
|
|
if (a.indexOf(p, h + 1) === h + 1) {
|
|
c += d[p];
|
|
h += p.length;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
a = c;
|
|
e += a;
|
|
u += a.length;
|
|
u - l && (r && r.textFormat.equals(w) ? r.endIndex = u : (r = new m.text.TextRun(l, u, w), f.push(r)), l = u);
|
|
}, start:function(a, b) {
|
|
switch(a) {
|
|
case "a":
|
|
h.push(w);
|
|
g("<a/>");
|
|
var d = b.target || w.target, l = b.url || w.url;
|
|
if (d !== w.target || l !== w.url) {
|
|
w = w.clone(), w.target = d, w.url = l;
|
|
}
|
|
break;
|
|
case "b":
|
|
h.push(w);
|
|
w.bold || (w = w.clone(), w.bold = !0);
|
|
break;
|
|
case "font":
|
|
h.push(w);
|
|
var d = s.isValidHexColor(b.color) ? s.hexToRGB(b.color) : w.color, l = b.face || w.font, n = isNaN(b.size) ? w.size : +b.size;
|
|
if (d !== w.color || l !== w.font || n !== w.size) {
|
|
w = w.clone(), w.color = d, w.font = l, w.size = n;
|
|
}
|
|
break;
|
|
case "img":
|
|
k("<img/>");
|
|
break;
|
|
case "i":
|
|
h.push(w);
|
|
r || (w = w.clone(), w.italic = !0);
|
|
break;
|
|
case "li":
|
|
if (h.push(w), w.bullet || (w = w.clone(), w.bullet = !0), "\r" === e[e.length - 1]) {
|
|
break;
|
|
}
|
|
;
|
|
case "br":
|
|
c && x.chars("\r");
|
|
break;
|
|
case "p":
|
|
h.push(w);
|
|
d = b.align;
|
|
-1 < m.text.TextFormatAlign.toNumber(d) && d !== w.align && (w = w.clone(), w.align = d);
|
|
break;
|
|
case "textformat":
|
|
h.push(w);
|
|
var d = isNaN(b.blockindent) ? w.blockIndent : +b.blockindent, l = isNaN(b.indent) ? w.indent : +b.indent, n = isNaN(b.leading) ? w.leading : +b.leading, f = isNaN(b.leftmargin) ? w.leftMargin : +b.leftmargin, q = isNaN(b.rightmargin) ? w.rightMargin : +b.rightmargin;
|
|
if (d !== w.blockIndent || l !== w.indent || n !== w.leading || f !== w.leftMargin || q !== w.rightMargin) {
|
|
w = w.clone(), w.blockIndent = d, w.indent = l, w.leading = n, w.leftMargin = f, w.rightMargin = q;
|
|
}
|
|
break;
|
|
case "u":
|
|
h.push(w), w.underline || (w = w.clone(), w.underline = !0);
|
|
}
|
|
}, end:function(a) {
|
|
switch(a) {
|
|
case "li":
|
|
;
|
|
case "p":
|
|
c && x.chars("\r");
|
|
case "a":
|
|
;
|
|
case "b":
|
|
;
|
|
case "font":
|
|
;
|
|
case "i":
|
|
;
|
|
case "textformat":
|
|
;
|
|
case "u":
|
|
w = h.pop();
|
|
}
|
|
}});
|
|
this._plainText = e;
|
|
this.textRunData.clear();
|
|
for (var y = 0;y < f.length;y++) {
|
|
this._writeTextRun(f[y]);
|
|
}
|
|
this.flags |= 2;
|
|
};
|
|
Object.defineProperty(a.prototype, "plainText", {get:function() {
|
|
return this._plainText;
|
|
}, set:function(a) {
|
|
this._plainText = a;
|
|
this.textRuns.length = 0;
|
|
a = new m.text.TextRun(0, a.length, this.defaultTextFormat);
|
|
this.textRuns[0] = a;
|
|
this.textRunData.clear();
|
|
this._writeTextRun(a);
|
|
this.flags |= 2;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "bounds", {get:function() {
|
|
return this._bounds;
|
|
}, set:function(a) {
|
|
this._bounds.copyFrom(a);
|
|
this.flags |= 1;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "autoSize", {get:function() {
|
|
return this._autoSize;
|
|
}, set:function(a) {
|
|
a !== this._autoSize && (this._autoSize = a, this._plainText && (this.flags |= 8));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "wordWrap", {get:function() {
|
|
return this._wordWrap;
|
|
}, set:function(a) {
|
|
a !== this._wordWrap && (this._wordWrap = a, this._plainText && (this.flags |= 8));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "backgroundColor", {get:function() {
|
|
return this._backgroundColor;
|
|
}, set:function(a) {
|
|
a !== this._backgroundColor && (this._backgroundColor = a, this.flags |= 4);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "borderColor", {get:function() {
|
|
return this._borderColor;
|
|
}, set:function(a) {
|
|
a !== this._borderColor && (this._borderColor = a, this.flags |= 4);
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype._writeTextRun = function(a) {
|
|
var b = this.textRunData;
|
|
b.writeInt(a.beginIndex);
|
|
b.writeInt(a.endIndex);
|
|
a = a.textFormat;
|
|
var c = +a.size;
|
|
b.writeInt(c);
|
|
var d = m.text.Font.getByName(a.font) || m.text.Font.getDefaultFont();
|
|
d.fontType === m.text.FontType.EMBEDDED ? b.writeInt(d._id) : (b.writeInt(0), b.writeUTF(m.text.Font.resolveFontName(d.fontName)));
|
|
b.writeInt(d.ascent * c);
|
|
b.writeInt(d.descent * c);
|
|
b.writeInt(null === a.leading ? d.leading * c : +a.leading);
|
|
c = null === a.bold ? d.fontStyle === m.text.FontStyle.BOLD || d.fontType === m.text.FontStyle.BOLD_ITALIC : !!a.bold;
|
|
d = null === a.italic ? d.fontStyle === m.text.FontStyle.ITALIC || d.fontType === m.text.FontStyle.BOLD_ITALIC : !!a.italic;
|
|
b.writeBoolean(c);
|
|
b.writeBoolean(d);
|
|
b.writeInt(+a.color);
|
|
b.writeInt(m.text.TextFormatAlign.toNumber(a.align));
|
|
b.writeBoolean(!!a.bullet);
|
|
b.writeInt(+a.indent);
|
|
b.writeInt(+a.kerning);
|
|
b.writeInt(+a.leftMargin);
|
|
b.writeInt(+a.letterSpacing);
|
|
b.writeInt(+a.rightMargin);
|
|
b.writeBoolean(!!a.underline);
|
|
};
|
|
return a;
|
|
}();
|
|
b.TextContent = a;
|
|
})(Shumway || (Shumway = {}));
|
|
var Shumway$$inline_423 = Shumway || (Shumway = {}), AVM2$$inline_424 = Shumway$$inline_423.AVM2 || (Shumway$$inline_423.AVM2 = {}), AS$$inline_425 = AVM2$$inline_424.AS || (AVM2$$inline_424.AS = {});
|
|
AS$$inline_425.flashOptions = Shumway$$inline_423.Settings.shumwayOptions.register(new Shumway$$inline_423.Options.OptionSet("Flash Options"));
|
|
AS$$inline_425.traceLoaderOption = AS$$inline_425.flashOptions.register(new Shumway$$inline_423.Options.Option("tp", "Trace Loader", "boolean", !1, "Trace loader execution."));
|
|
AS$$inline_425.disableAudioOption = AS$$inline_425.flashOptions.register(new Shumway$$inline_423.Options.Option("da", "Disable Audio", "boolean", !1, "Disables audio."));
|
|
var AS$$inline_426 = AVM2$$inline_424.AS, AVM2$$inline_427 = Shumway$$inline_423.AVM2, __extends = this.__extends || function(b, k) {
|
|
function g() {
|
|
this.constructor = b;
|
|
}
|
|
for (var f in k) {
|
|
k.hasOwnProperty(f) && (b[f] = k[f]);
|
|
}
|
|
g.prototype = k.prototype;
|
|
b.prototype = new g;
|
|
};
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(k) {
|
|
var s = function(b) {
|
|
function d(a, b, d, f, e, g) {
|
|
"undefined" === typeof a && (a = 1);
|
|
"undefined" === typeof b && (b = 0);
|
|
"undefined" === typeof d && (d = 0);
|
|
"undefined" === typeof f && (f = 1);
|
|
"undefined" === typeof e && (e = 0);
|
|
"undefined" === typeof g && (g = 0);
|
|
var l = this._data = new Float64Array(6);
|
|
l[0] = a;
|
|
l[1] = b;
|
|
l[2] = d;
|
|
l[3] = f;
|
|
l[4] = e;
|
|
l[5] = g;
|
|
}
|
|
__extends(d, b);
|
|
d.FromUntyped = function(a) {
|
|
return new f.geom.Matrix(a.a, a.b, a.c, a.d, a.tx, a.ty);
|
|
};
|
|
d.FromDataBuffer = function(a) {
|
|
return new f.geom.Matrix(a.readFloat(), a.readFloat(), a.readFloat(), a.readFloat(), a.readFloat(), a.readFloat());
|
|
};
|
|
Object.defineProperty(d.prototype, "a", {get:function() {
|
|
return this._data[0];
|
|
}, set:function(a) {
|
|
this._data[0] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "b", {get:function() {
|
|
return this._data[1];
|
|
}, set:function(a) {
|
|
this._data[1] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "c", {get:function() {
|
|
return this._data[2];
|
|
}, set:function(a) {
|
|
this._data[2] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "d", {get:function() {
|
|
return this._data[3];
|
|
}, set:function(a) {
|
|
this._data[3] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "tx", {get:function() {
|
|
return this._data[4];
|
|
}, set:function(a) {
|
|
this._data[4] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "ty", {get:function() {
|
|
return this._data[5];
|
|
}, set:function(a) {
|
|
this._data[5] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.concat = function(a) {
|
|
var b = this._data;
|
|
a = a._data;
|
|
var d = b[0] * a[0], f = 0, e = 0, g = b[3] * a[3], l = b[4] * a[0] + a[4], m = b[5] * a[3] + a[5];
|
|
if (0 !== b[1] || 0 !== b[2] || 0 !== a[1] || 0 !== a[2]) {
|
|
d += b[1] * a[2], g += b[2] * a[1], f += b[0] * a[1] + b[1] * a[3], e += b[2] * a[0] + b[3] * a[2], l += b[5] * a[2], m += b[4] * a[1];
|
|
}
|
|
b[0] = d;
|
|
b[1] = f;
|
|
b[2] = e;
|
|
b[3] = g;
|
|
b[4] = l;
|
|
b[5] = m;
|
|
};
|
|
d.prototype.preMultiply = function(a) {
|
|
this.preMultiplyInto(a, this);
|
|
};
|
|
d.prototype.preMultiplyInto = function(a, b) {
|
|
var d = this._data, f = a._data, e = b._data, g = f[0] * d[0], l = 0, m = 0, k = f[3] * d[3], r = f[4] * d[0] + d[4], h = f[5] * d[3] + d[5];
|
|
if (0 !== f[1] || 0 !== f[2] || 0 !== d[1] || 0 !== d[2]) {
|
|
g += f[1] * d[2], k += f[2] * d[1], l += f[0] * d[1] + f[1] * d[3], m += f[2] * d[0] + f[3] * d[2], r += f[5] * d[2], h += f[4] * d[1];
|
|
}
|
|
e[0] = g;
|
|
e[1] = l;
|
|
e[2] = m;
|
|
e[3] = k;
|
|
e[4] = r;
|
|
e[5] = h;
|
|
};
|
|
d.prototype.invert = function() {
|
|
this.invertInto(this);
|
|
};
|
|
d.prototype.invertInto = function(a) {
|
|
var b = this._data, d = a._data, f = b[1], e = b[2], g = b[4], l = b[5];
|
|
if (0 === f && 0 === e) {
|
|
var m = d[0] = 1 / b[0], b = d[3] = 1 / b[3];
|
|
d[1] = d[2] = 0;
|
|
d[4] = -m * g;
|
|
d[5] = -b * l;
|
|
} else {
|
|
var m = b[0], b = b[3], k = m * b - f * e;
|
|
0 === k ? a.identity() : (k = 1 / k, a = 0, a = d[0] = b * k, f = d[1] = -f * k, e = d[2] = -e * k, b = d[3] = m * k, d[4] = -(a * g + e * l), d[5] = -(f * g + b * l));
|
|
}
|
|
};
|
|
d.prototype.identity = function() {
|
|
var a = this._data;
|
|
a[0] = a[3] = 1;
|
|
a[1] = a[2] = a[4] = a[5] = 0;
|
|
};
|
|
d.prototype.createBox = function(a, b, d, f, e) {
|
|
"undefined" === typeof d && (d = 0);
|
|
"undefined" === typeof f && (f = 0);
|
|
"undefined" === typeof e && (e = 0);
|
|
var g = this._data;
|
|
if (0 !== d) {
|
|
var l = Math.cos(d);
|
|
d = Math.sin(d);
|
|
g[0] = l * a;
|
|
g[1] = d * b;
|
|
g[2] = -d * a;
|
|
g[3] = l * b;
|
|
} else {
|
|
g[0] = a, g[1] = 0, g[2] = 0, g[3] = b;
|
|
}
|
|
g[4] = f;
|
|
g[5] = e;
|
|
};
|
|
d.prototype.createGradientBox = function(a, b, d, f, e) {
|
|
"undefined" === typeof d && (d = 0);
|
|
"undefined" === typeof f && (f = 0);
|
|
"undefined" === typeof e && (e = 0);
|
|
this.createBox(a / 1638.4, b / 1638.4, d, f + a / 2, e + b / 2);
|
|
};
|
|
d.prototype.rotate = function(a) {
|
|
a = +a;
|
|
if (0 !== a) {
|
|
var b = this._data, d = Math.cos(a);
|
|
a = Math.sin(a);
|
|
var f = b[0], e = b[1], g = b[2], l = b[3], m = b[4], k = b[5];
|
|
b[0] = f * d - e * a;
|
|
b[1] = f * a + e * d;
|
|
b[2] = g * d - l * a;
|
|
b[3] = g * a + l * d;
|
|
b[4] = m * d - k * a;
|
|
b[5] = m * a + k * d;
|
|
}
|
|
};
|
|
d.prototype.translate = function(a, b) {
|
|
var d = this._data;
|
|
d[4] += a;
|
|
d[5] += b;
|
|
};
|
|
d.prototype.scale = function(a, b) {
|
|
var d = this._data;
|
|
1 !== a && (d[0] *= a, d[2] *= a, d[4] *= a);
|
|
1 !== b && (d[1] *= b, d[3] *= b, d[5] *= b);
|
|
};
|
|
d.prototype.deltaTransformPoint = function(a) {
|
|
return new k.Point(this._data[0] * a.x + this._data[2] * a.y, this._data[1] * a.x + this._data[3] * a.y);
|
|
};
|
|
d.prototype.transformX = function(a, b) {
|
|
var d = this._data;
|
|
return d[0] * a + d[2] * b + d[4];
|
|
};
|
|
d.prototype.transformY = function(a, b) {
|
|
var d = this._data;
|
|
return d[1] * a + d[3] * b + d[5];
|
|
};
|
|
d.prototype.transformPoint = function(a) {
|
|
var b = this._data;
|
|
return new k.Point(b[0] * a.x + b[2] * a.y + b[4], b[1] * a.x + b[3] * a.y + b[5]);
|
|
};
|
|
d.prototype.transformPointInPlace = function(a) {
|
|
var b = this._data;
|
|
a.setTo(b[0] * a.x + b[2] * a.y + b[4], b[1] * a.x + b[3] * a.y + b[5]);
|
|
return a;
|
|
};
|
|
d.prototype.transformBounds = function(a) {
|
|
var b = this._data, d = b[0], f = b[1], e = b[2], g = b[3], l = b[4], m = b[5], k = a.xMin, r = a.yMin, h = a.width, x = a.height, b = Math.round(d * k + e * r + l), s = Math.round(f * k + g * r + m), t = Math.round(d * (k + h) + e * r + l), I = Math.round(f * (k + h) + g * r + m), C = Math.round(d * (k + h) + e * (r + x) + l), h = Math.round(f * (k + h) + g * (r + x) + m), d = Math.round(d * k + e * (r + x) + l), f = Math.round(f * k + g * (r + x) + m), g = 0;
|
|
b > t && (g = b, b = t, t = g);
|
|
C > d && (g = C, C = d, d = g);
|
|
a.xMin = b < C ? b : C;
|
|
a.xMax = t > d ? t : d;
|
|
s > I && (g = s, s = I, I = g);
|
|
h > f && (g = h, h = f, f = g);
|
|
a.yMin = s < h ? s : h;
|
|
a.yMax = I > f ? I : f;
|
|
};
|
|
d.prototype.getDeterminant = function() {
|
|
var a = this._data;
|
|
return a[0] * a[3] - a[1] * a[2];
|
|
};
|
|
d.prototype.getScaleX = function() {
|
|
var a = this._data;
|
|
if (1 === a[0] && 0 === a[1]) {
|
|
return 1;
|
|
}
|
|
a = Math.sqrt(a[0] * a[0] + a[1] * a[1]);
|
|
return 0 > this.getDeterminant() ? -a : a;
|
|
};
|
|
d.prototype.getScaleY = function() {
|
|
var a = this._data;
|
|
if (0 === a[2] && 1 === a[3]) {
|
|
return 1;
|
|
}
|
|
a = Math.sqrt(a[2] * a[2] + a[3] * a[3]);
|
|
return 0 > this.getDeterminant() ? -a : a;
|
|
};
|
|
d.prototype.getAbsoluteScaleX = function() {
|
|
return Math.abs(this.getScaleX());
|
|
};
|
|
d.prototype.getAbsoluteScaleY = function() {
|
|
return Math.abs(this.getScaleY());
|
|
};
|
|
d.prototype.getRotation = function() {
|
|
return Math.atan2(this._data[1], this._data[0]);
|
|
};
|
|
d.prototype.copyFrom = function(a) {
|
|
var b = this._data;
|
|
a = a._data;
|
|
b[0] = a[0];
|
|
b[1] = a[1];
|
|
b[2] = a[2];
|
|
b[3] = a[3];
|
|
b[4] = a[4];
|
|
b[5] = a[5];
|
|
};
|
|
d.prototype.setTo = function(a, b, d, f, e, g) {
|
|
var l = this._data;
|
|
l[0] = a;
|
|
l[1] = b;
|
|
l[2] = d;
|
|
l[3] = f;
|
|
l[4] = e;
|
|
l[5] = g;
|
|
};
|
|
d.prototype.toTwipsInPlace = function() {
|
|
var a = this._data;
|
|
a[4] = 20 * a[4] | 0;
|
|
a[5] = 20 * a[5] | 0;
|
|
return this;
|
|
};
|
|
d.prototype.toPixelsInPlace = function() {
|
|
var a = this._data;
|
|
a[4] /= 20;
|
|
a[5] /= 20;
|
|
return this;
|
|
};
|
|
d.prototype.copyRowTo = function(a, b) {
|
|
var d = this._data;
|
|
a >>>= 0;
|
|
0 === a ? (b.x = d[0], b.y = d[2], b.z = d[4]) : 1 === a ? (b.x = d[1], b.y = d[3], b.z = d[5]) : 2 === a && (b.x = 0, b.y = 0, b.z = 1);
|
|
};
|
|
d.prototype.copyColumnTo = function(a, b) {
|
|
var d = this._data;
|
|
a >>>= 0;
|
|
0 === a ? (b.x = d[0], b.y = d[1], b.z = 0) : 1 === a ? (b.x = d[2], b.y = d[3], b.z = 0) : 2 === a && (b.x = d[4], b.y = d[5], b.z = 1);
|
|
};
|
|
d.prototype.copyRowFrom = function(a, b) {
|
|
var d = this._data;
|
|
a >>>= 0;
|
|
0 === a ? (d[0] = b.x, d[2] = b.y, d[4] = b.z) : 1 === a && (d[1] = b.x, d[3] = b.y, d[5] = b.z);
|
|
};
|
|
d.prototype.copyColumnFrom = function(a, b) {
|
|
var d = this._data;
|
|
a >>>= 0;
|
|
0 === a ? (d[0] = b.x, d[2] = b.y, d[4] = b.z) : 1 === a && (d[1] = b.x, d[3] = b.y, d[5] = b.z);
|
|
};
|
|
d.prototype.updateScaleAndRotation = function(a, b, d) {
|
|
var f = this._data;
|
|
if (0 === d || 360 === d) {
|
|
f[0] = a, f[1] = f[2] = 0, f[3] = b;
|
|
} else {
|
|
var e = 0, g = 0;
|
|
switch(d) {
|
|
case 90:
|
|
;
|
|
case -270:
|
|
e = 0;
|
|
g = 1;
|
|
break;
|
|
case 180:
|
|
;
|
|
case -180:
|
|
e = -1;
|
|
g = 0;
|
|
break;
|
|
case 270:
|
|
;
|
|
case -90:
|
|
e = 0;
|
|
g = -1;
|
|
break;
|
|
default:
|
|
d = d / 180 * Math.PI, e = Math.cos(d), g = Math.sin(d);
|
|
}
|
|
f[0] = e * a;
|
|
f[1] = g * a;
|
|
f[2] = -g * b;
|
|
f[3] = e * b;
|
|
}
|
|
};
|
|
d.prototype.clone = function() {
|
|
var a = this._data;
|
|
return new f.geom.Matrix(a[0], a[1], a[2], a[3], a[4], a[5]);
|
|
};
|
|
d.prototype.equals = function(a) {
|
|
var b = this._data;
|
|
a = a._data;
|
|
return b[0] === a[0] && b[1] === a[1] && b[2] === a[2] && b[3] === a[3] && b[4] === a[4] && b[5] === a[5];
|
|
};
|
|
d.prototype.toString = function() {
|
|
var a = this._data;
|
|
return "(a=" + a[0] + ", b=" + a[1] + ", c=" + a[2] + ", d=" + a[3] + ", tx=" + a[4] + ", ty=" + a[5] + ")";
|
|
};
|
|
d.prototype.writeExternal = function(a) {
|
|
var b = this._data;
|
|
a.writeFloat(b[0]);
|
|
a.writeFloat(b[1]);
|
|
a.writeFloat(b[2]);
|
|
a.writeFloat(b[3]);
|
|
a.writeFloat(b[4]);
|
|
a.writeFloat(b[5]);
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.FROZEN_IDENTITY_MATRIX = Object.freeze(new d);
|
|
d.TEMP_MATRIX = new d;
|
|
return d;
|
|
}(b.ASNative);
|
|
k.Matrix = s;
|
|
})(f.geom || (f.geom = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(k) {
|
|
function s(a, b, c, d, l, g, m) {
|
|
var r = b * b, h = c * c, k = d * d, s = r + h + k, t = Math.sqrt(s);
|
|
b /= t;
|
|
c /= t;
|
|
d /= t;
|
|
r /= s;
|
|
h /= s;
|
|
k /= s;
|
|
s = Math.cos(a);
|
|
a = Math.sin(a);
|
|
return new f.geom.Matrix3D([r + (h + k) * s, b * c * (1 - s) + d * a, b * d * (1 - s) - c * a, 0, b * c * (1 - s) - d * a, h + (r + k) * s, c * d * (1 - s) + b * a, 0, b * d * (1 - s) + c * a, c * d * (1 - s) - b * a, k + (r + h) * s, 0, (l * (h + k) - b * (g * c + m * d)) * (1 - s) + (g * d - m * c) * a, (g * (r + k) - c * (l * b + m * d)) * (1 - s) + (m * b - l * d) * a, (m * (r + h) - d * (l * b + g * c)) * (1 - s) + (l * c - g * b) * a, 1]);
|
|
}
|
|
var m = b.Debug.notImplemented, d = b.AVM2.Runtime.asCoerceString, a = new Uint32Array([0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15]), c = function(b) {
|
|
function c(a) {
|
|
"undefined" === typeof a && (a = null);
|
|
this._matrix = new Float32Array(16);
|
|
a && 16 <= a.length ? this.copyRawDataFrom(a) : this.identity();
|
|
}
|
|
__extends(c, b);
|
|
c.interpolate = function(a, b, c) {
|
|
m("public flash.geom.Matrix3D::static interpolate");
|
|
};
|
|
Object.defineProperty(c.prototype, "rawData", {get:function() {
|
|
var a = new g.Float64Vector;
|
|
this.copyRawDataTo(a);
|
|
return a;
|
|
}, set:function(a) {
|
|
this.copyRawDataFrom(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "position", {get:function() {
|
|
var a = this._matrix;
|
|
return new f.geom.Vector3D(a[12], a[13], a[14]);
|
|
}, set:function(a) {
|
|
var b = this._matrix;
|
|
b[12] = a.x;
|
|
b[13] = a.y;
|
|
b[14] = a.z;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "determinant", {get:function() {
|
|
var a = this._matrix, b = a[4], c = a[8], d = a[12], f = a[5], n = a[9], h = a[13], g = a[6], p = a[10], m = a[14], k = a[7], s = a[11], t = a[15];
|
|
return a[0] * (f * (p * t - s * m) - g * (n * t - s * h) + k * (n * m - p * h)) - a[1] * (b * (p * t - s * m) - g * (c * t - s * d) + k * (c * m - p * d)) + a[2] * (b * (n * t - s * h) - f * (c * t - s * d) + k * (c * h - n * d)) - a[3] * (b * (n * m - p * h) - f * (c * m - p * d) + g * (c * h - n * d));
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.clone = function() {
|
|
return new f.geom.Matrix3D(this._matrix);
|
|
};
|
|
c.prototype.copyToMatrix3D = function(a) {
|
|
a._matrix.set(this._matrix);
|
|
};
|
|
c.prototype.append = function(a) {
|
|
var b = a._matrix, c = this._matrix;
|
|
a = this._matrix;
|
|
var d = b[0], f = b[4], n = b[8], h = b[12], g = b[1], p = b[5], m = b[9], k = b[13], s = b[2], t = b[6], O = b[10], K = b[14], F = b[3], J = b[7], A = b[11], b = b[15], B = c[0], z = c[4], P = c[8], D = c[12], L = c[1], M = c[5], V = c[9], Q = c[13], U = c[2], S = c[6], aa = c[10], $ = c[14], ea = c[3], Z = c[7], v = c[11], c = c[15];
|
|
a[0] = d * B + f * L + n * U + h * ea;
|
|
a[1] = g * B + p * L + m * U + k * ea;
|
|
a[2] = s * B + t * L + O * U + K * ea;
|
|
a[3] = F * B + J * L + A * U + b * ea;
|
|
a[4] = d * z + f * M + n * S + h * Z;
|
|
a[5] = g * z + p * M + m * S + k * Z;
|
|
a[6] = s * z + t * M + O * S + K * Z;
|
|
a[7] = F * z + J * M + A * S + b * Z;
|
|
a[8] = d * P + f * V + n * aa + h * v;
|
|
a[9] = g * P + p * V + m * aa + k * v;
|
|
a[10] = s * P + t * V + O * aa + K * v;
|
|
a[11] = F * P + J * V + A * aa + b * v;
|
|
a[12] = d * D + f * Q + n * $ + h * c;
|
|
a[13] = g * D + p * Q + m * $ + k * c;
|
|
a[14] = s * D + t * Q + O * $ + K * c;
|
|
a[15] = F * D + J * Q + A * $ + b * c;
|
|
};
|
|
c.prototype.prepend = function(a) {
|
|
var b = this._matrix, c = a._matrix;
|
|
a = this._matrix;
|
|
var d = b[0], f = b[4], n = b[8], h = b[12], g = b[1], p = b[5], m = b[9], k = b[13], s = b[2], t = b[6], O = b[10], K = b[14], F = b[3], J = b[7], A = b[11], b = b[15], B = c[0], z = c[4], P = c[8], D = c[12], L = c[1], M = c[5], V = c[9], Q = c[13], U = c[2], S = c[6], aa = c[10], $ = c[14], ea = c[3], Z = c[7], v = c[11], c = c[15];
|
|
a[0] = d * B + f * L + n * U + h * ea;
|
|
a[1] = g * B + p * L + m * U + k * ea;
|
|
a[2] = s * B + t * L + O * U + K * ea;
|
|
a[3] = F * B + J * L + A * U + b * ea;
|
|
a[4] = d * z + f * M + n * S + h * Z;
|
|
a[5] = g * z + p * M + m * S + k * Z;
|
|
a[6] = s * z + t * M + O * S + K * Z;
|
|
a[7] = F * z + J * M + A * S + b * Z;
|
|
a[8] = d * P + f * V + n * aa + h * v;
|
|
a[9] = g * P + p * V + m * aa + k * v;
|
|
a[10] = s * P + t * V + O * aa + K * v;
|
|
a[11] = F * P + J * V + A * aa + b * v;
|
|
a[12] = d * D + f * Q + n * $ + h * c;
|
|
a[13] = g * D + p * Q + m * $ + k * c;
|
|
a[14] = s * D + t * Q + O * $ + K * c;
|
|
a[15] = F * D + J * Q + A * $ + b * c;
|
|
};
|
|
c.prototype.invert = function() {
|
|
var a = this.determinant;
|
|
if (1E-7 > Math.abs(a)) {
|
|
return!1;
|
|
}
|
|
var a = 1 / a, b = this._matrix, c = b[0], d = b[1], f = b[2], n = b[3], h = b[4], g = b[5], p = b[6], m = b[7], k = b[8], s = b[9], t = b[10], O = b[11], K = b[12], F = b[13], J = b[14], A = b[15];
|
|
b[0] = a * (g * (t * A - J * O) - s * (p * A - J * m) + F * (p * O - t * m));
|
|
b[1] = -a * (d * (t * A - J * O) - s * (f * A - J * n) + F * (f * O - t * n));
|
|
b[2] = a * (d * (p * A - J * m) - g * (f * A - J * n) + F * (f * m - p * n));
|
|
b[3] = -a * (d * (p * O - t * m) - g * (f * O - t * n) + s * (f * m - p * n));
|
|
b[4] = -a * (h * (t * A - J * O) - k * (p * A - J * m) + K * (p * O - t * m));
|
|
b[5] = a * (c * (t * A - J * O) - k * (f * A - J * n) + K * (f * O - t * n));
|
|
b[6] = -a * (c * (p * A - J * m) - h * (f * A - J * n) + K * (f * m - p * n));
|
|
b[7] = a * (c * (p * O - t * m) - h * (f * O - t * n) + k * (f * m - p * n));
|
|
b[8] = a * (h * (s * A - F * O) - k * (g * A - F * m) + K * (g * O - s * m));
|
|
b[9] = -a * (c * (s * A - F * O) - k * (d * A - F * n) + K * (d * O - s * n));
|
|
b[10] = a * (c * (g * A - F * m) - h * (d * A - F * n) + K * (d * m - g * n));
|
|
b[11] = -a * (c * (g * O - s * m) - h * (d * O - s * n) + k * (d * m - g * n));
|
|
b[12] = -a * (h * (s * J - F * t) - k * (g * J - F * p) + K * (g * t - s * p));
|
|
b[13] = a * (c * (s * J - F * t) - k * (d * J - F * f) + K * (d * t - s * f));
|
|
b[14] = -a * (c * (g * J - F * p) - h * (d * J - F * f) + K * (d * p - g * f));
|
|
b[15] = a * (c * (g * t - s * p) - h * (d * t - s * f) + k * (d * p - g * f));
|
|
return!0;
|
|
};
|
|
c.prototype.identity = function() {
|
|
var a = this._matrix;
|
|
a[0] = a[5] = a[10] = a[15] = 1;
|
|
a[1] = a[2] = a[3] = a[4] = a[6] = a[7] = a[8] = a[9] = a[11] = a[12] = a[13] = a[14] = 0;
|
|
};
|
|
c.prototype.decompose = function(a) {
|
|
"undefined" === typeof a && (a = "eulerAngles");
|
|
d(a);
|
|
m("public flash.geom.Matrix3D::decompose");
|
|
};
|
|
c.prototype.recompose = function(a, b) {
|
|
"undefined" === typeof b && (b = "eulerAngles");
|
|
d(b);
|
|
m("public flash.geom.Matrix3D::recompose");
|
|
};
|
|
c.prototype.appendTranslation = function(a, b, c) {
|
|
a = +a;
|
|
b = +b;
|
|
c = +c;
|
|
var d = this._matrix, f = d[3], n = d[7], h = d[11], g = d[15];
|
|
d[0] += a * f;
|
|
d[1] += b * f;
|
|
d[2] += c * f;
|
|
d[4] += a * n;
|
|
d[5] += b * n;
|
|
d[6] += c * n;
|
|
d[8] += a * h;
|
|
d[9] += b * h;
|
|
d[10] += c * h;
|
|
d[12] += a * g;
|
|
d[13] += b * g;
|
|
d[14] += c * g;
|
|
};
|
|
c.prototype.appendRotation = function(a, b, c) {
|
|
"undefined" === typeof c && (c = null);
|
|
this.append(s(+a / 180 * Math.PI, b.x, b.y, b.z, c ? c.x : 0, c ? c.y : 0, c ? c.z : 0));
|
|
};
|
|
c.prototype.appendScale = function(a, b, c) {
|
|
a = +a;
|
|
b = +b;
|
|
c = +c;
|
|
var d = this._matrix;
|
|
d[0] *= a;
|
|
d[1] *= b;
|
|
d[2] *= c;
|
|
d[4] *= a;
|
|
d[5] *= b;
|
|
d[6] *= c;
|
|
d[8] *= a;
|
|
d[9] *= b;
|
|
d[10] *= c;
|
|
d[12] *= a;
|
|
d[13] *= b;
|
|
d[14] *= c;
|
|
};
|
|
c.prototype.prependTranslation = function(a, b, c) {
|
|
a = +a;
|
|
b = +b;
|
|
c = +c;
|
|
var d = this._matrix, f = d[1], n = d[5], h = d[9], g = d[2], p = d[6], m = d[10], k = d[3], s = d[7], t = d[11];
|
|
d[12] += d[0] * a + d[4] * b + d[8] * c;
|
|
d[13] += f * a + n * b + h * c;
|
|
d[14] += g * a + p * b + m * c;
|
|
d[15] += k * a + s * b + t * c;
|
|
};
|
|
c.prototype.prependRotation = function(a, b, c) {
|
|
"undefined" === typeof c && (c = null);
|
|
this.prepend(s(+a / 180 * Math.PI, b.x, b.y, b.z, c ? c.x : 0, c ? c.y : 0, c ? c.z : 0));
|
|
};
|
|
c.prototype.prependScale = function(a, b, c) {
|
|
a = +a;
|
|
b = +b;
|
|
c = +c;
|
|
var d = this._matrix;
|
|
d[0] *= a;
|
|
d[1] *= a;
|
|
d[2] *= a;
|
|
d[3] *= a;
|
|
d[4] *= b;
|
|
d[5] *= b;
|
|
d[6] *= b;
|
|
d[7] *= b;
|
|
d[8] *= c;
|
|
d[9] *= c;
|
|
d[10] *= c;
|
|
d[11] *= c;
|
|
};
|
|
c.prototype.transformVector = function(a) {
|
|
var b = this._matrix, c = a.x, d = a.y;
|
|
a = a.z;
|
|
return new f.geom.Vector3D(b[0] * c + b[4] * d + b[8] * a + b[12], b[1] * c + b[5] * d + b[9] * a + b[13], b[2] * c + b[6] * d + b[10] * a + b[14]);
|
|
};
|
|
c.prototype.deltaTransformVector = function(a) {
|
|
var b = this._matrix, c = a.x, d = a.y;
|
|
a = a.z;
|
|
return new f.geom.Vector3D(b[0] * c + b[4] * d + b[8] * a, b[1] * c + b[5] * d + b[9] * a, b[2] * c + b[6] * d + b[10] * a);
|
|
};
|
|
c.prototype.transformVectors = function(a, b) {
|
|
for (var c = this._matrix, d = c[0], f = c[4], n = c[8], h = c[12], g = c[1], p = c[5], m = c[9], k = c[13], s = c[2], t = c[6], O = c[10], c = c[14], K = 0;K < a.length - 2;K += 3) {
|
|
var F = a.asGetNumericProperty(K), J = a.asGetNumericProperty(K + 1), A = a.asGetNumericProperty(K + 2);
|
|
b.push(d * F + f * J + n * A + h);
|
|
b.push(g * F + p * J + m * A + k);
|
|
b.push(s * F + t * J + O * A + c);
|
|
}
|
|
};
|
|
c.prototype.transpose = function() {
|
|
var a = this._matrix, b;
|
|
b = a[1];
|
|
a[1] = a[4];
|
|
a[4] = b;
|
|
b = a[2];
|
|
a[2] = a[8];
|
|
a[5] = b;
|
|
b = a[3];
|
|
a[3] = a[12];
|
|
a[12] = b;
|
|
b = a[6];
|
|
a[6] = a[9];
|
|
a[9] = b;
|
|
b = a[7];
|
|
a[7] = a[13];
|
|
a[13] = b;
|
|
b = a[11];
|
|
a[11] = a[14];
|
|
a[14] = b;
|
|
};
|
|
c.prototype.pointAt = function(a, b, c) {
|
|
m("public flash.geom.Matrix3D::pointAt");
|
|
};
|
|
c.prototype.interpolateTo = function(a, b) {
|
|
m("public flash.geom.Matrix3D::interpolateTo");
|
|
};
|
|
c.prototype.copyFrom = function(a) {
|
|
this._matrix.set(a._matrix);
|
|
};
|
|
c.prototype.copyRawDataTo = function(b) {
|
|
var c = 0, d = !1;
|
|
"undefined" === typeof c && (c = 0);
|
|
"undefined" === typeof d && (d = !1);
|
|
var c = c >>> 0, f = this._matrix;
|
|
if (d) {
|
|
for (d = 0, c |= 0;16 > d;d++, c++) {
|
|
b.asSetNumericProperty(c, f[a[d]]);
|
|
}
|
|
} else {
|
|
for (d = 0, c |= 0;16 > d;d++, c++) {
|
|
b.asSetNumericProperty(c, f[d]);
|
|
}
|
|
}
|
|
};
|
|
c.prototype.copyRawDataFrom = function(b) {
|
|
var c = 0, d = !1;
|
|
"undefined" === typeof c && (c = 0);
|
|
"undefined" === typeof d && (d = !1);
|
|
var c = c >>> 0, f = this._matrix;
|
|
if (d) {
|
|
for (d = 0, c |= 0;16 > d;d++, c++) {
|
|
f[a[d]] = b.asGetNumericProperty(c) || 0;
|
|
}
|
|
} else {
|
|
for (d = 0, c |= 0;16 > d;d++, c++) {
|
|
f[d] = b.asGetNumericProperty(c) || 0;
|
|
}
|
|
}
|
|
};
|
|
c.prototype.copyRowTo = function(a, b) {
|
|
var c = a >>> 0 | 0, d = this._matrix;
|
|
b.x = d[c];
|
|
b.y = d[c + 4];
|
|
b.z = d[c + 8];
|
|
b.w = d[c + 12];
|
|
};
|
|
c.prototype.copyColumnTo = function(a, b) {
|
|
var c = a >>> 0 << 2, d = this._matrix;
|
|
b.x = d[c];
|
|
b.y = d[c + 1];
|
|
b.z = d[c + 2];
|
|
b.w = d[c + 3];
|
|
};
|
|
c.prototype.copyRowFrom = function(a, b) {
|
|
var c = a >>> 0 | 0, d = this._matrix;
|
|
d[c] = b.x;
|
|
d[c + 4] = b.y;
|
|
d[c + 8] = b.z;
|
|
d[c + 12] = b.w;
|
|
};
|
|
c.prototype.copyColumnFrom = function(a, b) {
|
|
var c = a >>> 0 << 2, d = this._matrix;
|
|
d[c] = b.x;
|
|
d[c + 1] = b.y;
|
|
d[c + 2] = b.z;
|
|
d[c + 3] = b.w;
|
|
};
|
|
c.classInitializer = null;
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
return c;
|
|
}(g.ASNative);
|
|
k.Matrix3D = c;
|
|
})(f.geom || (f.geom = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.geom.Orientation3D");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.EULER_ANGLES = "eulerAngles";
|
|
a.AXIS_ANGLE = "axisAngle";
|
|
a.QUATERNION = "quaternion";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.Orientation3D = m;
|
|
})(f.geom || (f.geom = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.geom.PerspectiveProjection");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "fieldOfView", {get:function() {
|
|
k("public flash.geom.PerspectiveProjection::get fieldOfView");
|
|
}, set:function(a) {
|
|
k("public flash.geom.PerspectiveProjection::set fieldOfView");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "projectionCenter", {get:function() {
|
|
k("public flash.geom.PerspectiveProjection::get projectionCenter");
|
|
}, set:function(a) {
|
|
k("public flash.geom.PerspectiveProjection::set projectionCenter");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "focalLength", {get:function() {
|
|
k("public flash.geom.PerspectiveProjection::get focalLength");
|
|
}, set:function(a) {
|
|
k("public flash.geom.PerspectiveProjection::set focalLength");
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.toMatrix3D = function() {
|
|
k("public flash.geom.PerspectiveProjection::toMatrix3D");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.PerspectiveProjection = m;
|
|
})(f.geom || (f.geom = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d(a, b) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = 0);
|
|
this.x = +a;
|
|
this.y = +b;
|
|
}
|
|
__extends(d, b);
|
|
Object.defineProperty(d.prototype, "native_x", {get:function() {
|
|
return this.x;
|
|
}, set:function(a) {
|
|
this.x = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "native_y", {get:function() {
|
|
return this.y;
|
|
}, set:function(a) {
|
|
this.y = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.Point = function(a, b) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = 0);
|
|
this.x = a;
|
|
this.y = b;
|
|
};
|
|
Object.defineProperty(d.prototype, "length", {get:function() {
|
|
return Math.sqrt(this.x * this.x + this.y * this.y);
|
|
}, enumerable:!0, configurable:!0});
|
|
d.interpolate = function(a, b, f) {
|
|
var g = 1 - f;
|
|
return new d(a.x * f + b.x * g, a.y * f + b.y * g);
|
|
};
|
|
d.distance = function(a, b) {
|
|
var d = b.x - a.x, f = b.y - a.y;
|
|
return 0 === d ? Math.abs(f) : 0 === f ? Math.abs(d) : Math.sqrt(d * d + f * f);
|
|
};
|
|
d.polar = function(a, b) {
|
|
a = +a;
|
|
b = +b;
|
|
return new d(a * Math.cos(b), a * Math.sin(b));
|
|
};
|
|
d.prototype.clone = function() {
|
|
return new d(this.x, this.y);
|
|
};
|
|
d.prototype.offset = function(a, b) {
|
|
this.x += +a;
|
|
this.y += +b;
|
|
};
|
|
d.prototype.equals = function(a) {
|
|
return this.x === a.x && this.y === a.y;
|
|
};
|
|
d.prototype.subtract = function(a) {
|
|
return new d(this.x - a.x, this.y - a.y);
|
|
};
|
|
d.prototype.add = function(a) {
|
|
return new d(this.x + a.x, this.y + a.y);
|
|
};
|
|
d.prototype.normalize = function(a) {
|
|
if (0 !== this.x || 0 !== this.y) {
|
|
a = +a / this.length, this.x *= a, this.y *= a;
|
|
}
|
|
};
|
|
d.prototype.copyFrom = function(a) {
|
|
this.x = a.x;
|
|
this.y = a.y;
|
|
};
|
|
d.prototype.setTo = function(a, b) {
|
|
this.x = +a;
|
|
this.y = +b;
|
|
};
|
|
d.prototype.toTwips = function() {
|
|
this.x = 20 * this.x | 0;
|
|
this.y = 20 * this.y | 0;
|
|
return this;
|
|
};
|
|
d.prototype.toPixels = function() {
|
|
this.x /= 20;
|
|
this.y /= 20;
|
|
return this;
|
|
};
|
|
d.prototype.round = function() {
|
|
this.x = Math.round(this.x);
|
|
this.y = Math.round(this.y);
|
|
return this;
|
|
};
|
|
d.prototype.toString = function() {
|
|
return "(x=" + this.x + ", y=" + this.y + ")";
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(b.ASNative);
|
|
f.Point = k;
|
|
})(f.geom || (f.geom = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d(a, b, d, f) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = 0);
|
|
"undefined" === typeof d && (d = 0);
|
|
"undefined" === typeof f && (f = 0);
|
|
this.x = +a;
|
|
this.y = +b;
|
|
this.width = +d;
|
|
this.height = +f;
|
|
}
|
|
__extends(d, b);
|
|
d.FromBounds = function(a) {
|
|
var b = a.xMin, f = a.yMin;
|
|
return new d(b / 20, f / 20, (a.xMax - b) / 20, (a.yMax - f) / 20);
|
|
};
|
|
Object.defineProperty(d.prototype, "native_x", {get:function() {
|
|
return this.x;
|
|
}, set:function(a) {
|
|
this.x = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "native_y", {get:function() {
|
|
return this.y;
|
|
}, set:function(a) {
|
|
this.y = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "native_width", {get:function() {
|
|
return this.width;
|
|
}, set:function(a) {
|
|
this.width = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "native_height", {get:function() {
|
|
return this.height;
|
|
}, set:function(a) {
|
|
this.height = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "left", {get:function() {
|
|
return this.x;
|
|
}, set:function(a) {
|
|
a = +a;
|
|
this.width += this.x - a;
|
|
this.x = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "right", {get:function() {
|
|
return this.x + this.width;
|
|
}, set:function(a) {
|
|
this.width = +a - this.x;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "top", {get:function() {
|
|
return this.y;
|
|
}, set:function(a) {
|
|
a = +a;
|
|
this.height += this.y - a;
|
|
this.y = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "bottom", {get:function() {
|
|
return this.y + this.height;
|
|
}, set:function(a) {
|
|
this.height = +a - this.y;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "topLeft", {get:function() {
|
|
return new f.Point(this.left, this.top);
|
|
}, set:function(a) {
|
|
this.top = a.y;
|
|
this.left = a.x;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "bottomRight", {get:function() {
|
|
return new f.Point(this.right, this.bottom);
|
|
}, set:function(a) {
|
|
this.bottom = a.y;
|
|
this.right = a.x;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "size", {get:function() {
|
|
return new f.Point(this.width, this.height);
|
|
}, set:function(a) {
|
|
this.width = a.x;
|
|
this.height = a.y;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "area", {get:function() {
|
|
return this.width * this.height;
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.clone = function() {
|
|
return new d(this.x, this.y, this.width, this.height);
|
|
};
|
|
d.prototype.isEmpty = function() {
|
|
return 0 >= this.width || 0 >= this.height;
|
|
};
|
|
d.prototype.setEmpty = function() {
|
|
this.height = this.width = this.y = this.x = 0;
|
|
};
|
|
d.prototype.inflate = function(a, b) {
|
|
a = +a;
|
|
b = +b;
|
|
this.x -= a;
|
|
this.y -= b;
|
|
this.width += 2 * a;
|
|
this.height += 2 * b;
|
|
};
|
|
d.prototype.inflatePoint = function(a) {
|
|
this.inflate(a.x, a.y);
|
|
};
|
|
d.prototype.offset = function(a, b) {
|
|
this.x += +a;
|
|
this.y += +b;
|
|
};
|
|
d.prototype.offsetPoint = function(a) {
|
|
this.offset(a.x, a.y);
|
|
};
|
|
d.prototype.contains = function(a, b) {
|
|
a = +a;
|
|
b = +b;
|
|
return a >= this.x && a < this.right && b >= this.y && b < this.bottom;
|
|
};
|
|
d.prototype.containsPoint = function(a) {
|
|
return this.contains(a.x, a.y);
|
|
};
|
|
d.prototype.containsRect = function(a) {
|
|
var b = a.x + a.width, d = a.y + a.height, f = this.x + this.width, e = this.y + this.height;
|
|
return a.x >= this.x && a.x < f && a.y >= this.y && a.y < e && b > this.x && b <= f && d > this.y && d <= e;
|
|
};
|
|
d.prototype.intersection = function(a) {
|
|
return this.clone().intersectInPlace(a);
|
|
};
|
|
d.prototype.intersects = function(a) {
|
|
return Math.max(this.x, a.x) <= Math.min(this.right, a.right) && Math.max(this.y, a.y) <= Math.min(this.bottom, a.bottom);
|
|
};
|
|
d.prototype.intersectInPlace = function(a) {
|
|
var b = this.x, d = this.y, f = a.x, e = a.y, g = Math.max(b, f), b = Math.min(b + this.width, f + a.width);
|
|
if (g <= b && (f = Math.max(d, e), a = Math.min(d + this.height, e + a.height), f <= a)) {
|
|
return this.setTo(g, f, b - g, a - f), this;
|
|
}
|
|
this.setEmpty();
|
|
return this;
|
|
};
|
|
d.prototype.intersectInPlaceInt32 = function(a) {
|
|
var b = this.x | 0, d = this.y | 0, f = this.width | 0, e = this.height | 0, g = a.x | 0, l = a.width | 0, m = Math.max(b, g) | 0, b = Math.min(b + f | 0, g + l | 0) | 0;
|
|
if (m <= b && (f = a.y | 0, g = a.height | 0, a = Math.max(d, f) | 0, d = Math.min(d + e | 0, f + g | 0), a <= d)) {
|
|
return this.setTo(m, a, b - m, d - a), this;
|
|
}
|
|
this.setEmpty();
|
|
return this;
|
|
};
|
|
d.prototype.union = function(a) {
|
|
return this.clone().unionInPlace(a);
|
|
};
|
|
d.prototype.unionInPlace = function(a) {
|
|
if (!a.isEmpty()) {
|
|
if (this.isEmpty()) {
|
|
this.copyFrom(a);
|
|
} else {
|
|
var b = Math.min(this.x, a.x), d = Math.min(this.y, a.y);
|
|
this.setTo(b, d, Math.max(this.right, a.right) - b, Math.max(this.bottom, a.bottom) - d);
|
|
return this;
|
|
}
|
|
}
|
|
};
|
|
d.prototype.equals = function(a) {
|
|
return this.x === a.x && this.y === a.y && this.width === a.width && this.height === a.height;
|
|
};
|
|
d.prototype.copyFrom = function(a) {
|
|
this.x = a.x;
|
|
this.y = a.y;
|
|
this.width = a.width;
|
|
this.height = a.height;
|
|
};
|
|
d.prototype.setTo = function(a, b, d, f) {
|
|
this.x = +a;
|
|
this.y = +b;
|
|
this.width = +d;
|
|
this.height = +f;
|
|
};
|
|
d.prototype.toTwips = function() {
|
|
this.x = 20 * this.x | 0;
|
|
this.y = 20 * this.y | 0;
|
|
this.width = 20 * this.width | 0;
|
|
this.height = 20 * this.height | 0;
|
|
return this;
|
|
};
|
|
d.prototype.getBaseWidth = function(a) {
|
|
return Math.abs(Math.cos(a)) * this.width + Math.abs(Math.sin(a)) * this.height;
|
|
};
|
|
d.prototype.getBaseHeight = function(a) {
|
|
return Math.abs(Math.sin(a)) * this.width + Math.abs(Math.cos(a)) * this.height;
|
|
};
|
|
d.prototype.toPixels = function() {
|
|
this.x /= 20;
|
|
this.y /= 20;
|
|
this.width /= 20;
|
|
this.height /= 20;
|
|
return this;
|
|
};
|
|
d.prototype.snapInPlace = function() {
|
|
var a = Math.ceil(this.x + this.width), b = Math.ceil(this.y + this.height);
|
|
this.x = Math.floor(this.x);
|
|
this.y = Math.floor(this.y);
|
|
this.width = a - this.x;
|
|
this.height = b - this.y;
|
|
return this;
|
|
};
|
|
d.prototype.roundInPlace = function() {
|
|
var a = Math.round(this.x + this.width), b = Math.round(this.y + this.height);
|
|
this.x = Math.round(this.x);
|
|
this.y = Math.round(this.y);
|
|
this.width = a - this.x;
|
|
this.height = b - this.y;
|
|
return this;
|
|
};
|
|
d.prototype.toString = function() {
|
|
return "(x=" + this.x + ", y=" + this.y + ", w=" + this.width + ", h=" + this.height + ")";
|
|
};
|
|
d.prototype.writeExternal = function(a) {
|
|
a.writeFloat(this.x);
|
|
a.writeFloat(this.y);
|
|
a.writeFloat(this.width);
|
|
a.writeFloat(this.height);
|
|
};
|
|
d.prototype.readExternal = function(a) {
|
|
this.x = a.readFloat();
|
|
this.y = a.readFloat();
|
|
this.width = a.readFloat();
|
|
this.height = a.readFloat();
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(b.ASNative);
|
|
f.Rectangle = k;
|
|
})(f.geom || (f.geom = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(k) {
|
|
var s = b.Debug.notImplemented, m = b.Debug.somewhatImplemented, d = b.AVM2.Runtime.throwError, a = b.AVM2.Errors, c = function(b) {
|
|
function c(b) {
|
|
b || d("ArgumentError", a.NullPointerError, "displayObject");
|
|
this._displayObject = b;
|
|
}
|
|
__extends(c, b);
|
|
Object.defineProperty(c.prototype, "matrix", {get:function() {
|
|
return this._displayObject._getMatrix().clone().toPixelsInPlace();
|
|
}, set:function(a) {
|
|
this._displayObject._setMatrix(a, !0);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "colorTransform", {get:function() {
|
|
return this._displayObject._colorTransform.clone();
|
|
}, set:function(a) {
|
|
this._displayObject._setColorTransform(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "concatenatedMatrix", {get:function() {
|
|
var a = this._displayObject._getConcatenatedMatrix().clone().toPixelsInPlace();
|
|
this._displayObject._stage || a.scale(5, 5);
|
|
return a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "concatenatedColorTransform", {get:function() {
|
|
return this._displayObject._getConcatenatedColorTransform();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "pixelBounds", {get:function() {
|
|
s("public flash.geom.Transform::get pixelBounds");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "matrix3D", {get:function() {
|
|
var a = this._displayObject._matrix3D;
|
|
return a && a.clone();
|
|
}, set:function(b) {
|
|
k.Matrix3D.isType(b) || d("TypeError", a.CheckTypeFailedError, b, "flash.geom.Matrix3D");
|
|
b = b.rawData;
|
|
this.matrix = new f.geom.Matrix(b.asGetPublicProperty(0), b.asGetPublicProperty(1), b.asGetPublicProperty(4), b.asGetPublicProperty(5), b.asGetPublicProperty(12), b.asGetPublicProperty(13));
|
|
m("public flash.geom.Transform::set matrix3D");
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.getRelativeMatrix3D = function(a) {
|
|
s("public flash.geom.Transform::getRelativeMatrix3D");
|
|
};
|
|
Object.defineProperty(c.prototype, "perspectiveProjection", {get:function() {
|
|
s("public flash.geom.Transform::get perspectiveProjection");
|
|
}, set:function(a) {
|
|
s("public flash.geom.Transform::set perspectiveProjection");
|
|
}, enumerable:!0, configurable:!0});
|
|
c.classInitializer = null;
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
return c;
|
|
}(g.ASNative);
|
|
k.Transform = c;
|
|
})(f.geom || (f.geom = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.geom.Utils3D");
|
|
}
|
|
__extends(a, b);
|
|
a.projectVector = function(a, b) {
|
|
k("public flash.geom.Utils3D::static projectVector");
|
|
};
|
|
a.projectVectors = function(a, b, d, e) {
|
|
k("public flash.geom.Utils3D::static projectVectors");
|
|
};
|
|
a.pointTowards = function(a, b, d, e, f) {
|
|
k("public flash.geom.Utils3D::static pointTowards");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.Utils3D = m;
|
|
})(f.geom || (f.geom = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d(a, b, d, f) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = 0);
|
|
"undefined" === typeof d && (d = 0);
|
|
"undefined" === typeof f && (f = 0);
|
|
this.x = +a;
|
|
this.y = +b;
|
|
this.z = +d;
|
|
this.w = +f;
|
|
}
|
|
__extends(d, b);
|
|
Object.defineProperty(d.prototype, "native_x", {get:function() {
|
|
return this.x;
|
|
}, set:function(a) {
|
|
this.x = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "native_y", {get:function() {
|
|
return this.y;
|
|
}, set:function(a) {
|
|
this.y = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "native_z", {get:function() {
|
|
return this.z;
|
|
}, set:function(a) {
|
|
this.z = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "native_w", {get:function() {
|
|
return this.w;
|
|
}, set:function(a) {
|
|
this.w = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "length", {get:function() {
|
|
return Math.sqrt(this.lengthSquared);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "lengthSquared", {get:function() {
|
|
return this.x * this.x + this.y * this.y + this.z * this.z;
|
|
}, enumerable:!0, configurable:!0});
|
|
d.angleBetween = function(a, b) {
|
|
return Math.acos(a.dotProduct(b) / (a.length * b.length));
|
|
};
|
|
d.distance = function(a, b) {
|
|
return a.subtract(b).length;
|
|
};
|
|
d.prototype.dotProduct = function(a) {
|
|
return this.x * a.x + this.y * a.y + this.z * a.z;
|
|
};
|
|
d.prototype.crossProduct = function(a) {
|
|
return new d(this.y * a.z - this.z * a.y, this.z * a.x - this.x * a.z, this.x * a.y - this.y * a.x, 1);
|
|
};
|
|
d.prototype.normalize = function() {
|
|
var a = this.length;
|
|
0 !== a ? (this.x /= a, this.y /= a, this.z /= a) : this.x = this.y = this.z = 0;
|
|
return a;
|
|
};
|
|
d.prototype.scaleBy = function(a) {
|
|
a = +a;
|
|
this.x *= a;
|
|
this.y *= a;
|
|
this.z *= a;
|
|
};
|
|
d.prototype.incrementBy = function(a) {
|
|
this.x += a.x;
|
|
this.y += a.y;
|
|
this.z += a.z;
|
|
};
|
|
d.prototype.decrementBy = function(a) {
|
|
this.x -= a.x;
|
|
this.y -= a.y;
|
|
this.z -= a.z;
|
|
};
|
|
d.prototype.add = function(a) {
|
|
return new d(this.x + a.x, this.y + a.y, this.z + a.z);
|
|
};
|
|
d.prototype.subtract = function(a) {
|
|
return new d(this.x - a.x, this.y - a.y, this.z - a.z);
|
|
};
|
|
d.prototype.negate = function() {
|
|
this.x = -this.x;
|
|
this.y = -this.y;
|
|
this.z = -this.z;
|
|
};
|
|
d.prototype.equals = function(a, b) {
|
|
return this.x === a.x && this.y === a.y && this.z === a.z && (!b || this.w === a.w);
|
|
};
|
|
d.prototype.nearEquals = function(a, b, d) {
|
|
return Math.abs(this.x - a.x) < b && Math.abs(this.y - a.y) < b && Math.abs(this.z - a.z) < b && (!d || Math.abs(this.w - a.w) < b);
|
|
};
|
|
d.prototype.project = function() {
|
|
this.x /= this.w;
|
|
this.y /= this.w;
|
|
this.z /= this.w;
|
|
};
|
|
d.prototype.copyFrom = function(a) {
|
|
this.x = a.x;
|
|
this.y = a.y;
|
|
this.z = a.z;
|
|
};
|
|
d.prototype.setTo = function(a, b, d) {
|
|
this.x = +a;
|
|
this.y = +b;
|
|
this.z = +d;
|
|
};
|
|
d.prototype.clone = function() {
|
|
return new d(this.x, this.y, this.z, this.w);
|
|
};
|
|
d.prototype.toString = function() {
|
|
return "Vector3D(" + this.x + ", " + this.y + ", " + this.z + ")";
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.X_AXIS = Object.freeze(new d(1, 0, 0));
|
|
d.Y_AXIS = Object.freeze(new d(0, 1, 0));
|
|
d.Z_AXIS = Object.freeze(new d(0, 0, 1));
|
|
return d;
|
|
}(b.ASNative);
|
|
f.Vector3D = k;
|
|
})(f.geom || (f.geom = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.accessibility.Accessibility");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a, "active", {get:function() {
|
|
k("public flash.accessibility.Accessibility::get active");
|
|
return a._active;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.sendEvent = function(a, b, d, e) {
|
|
k("public flash.accessibility.Accessibility::static sendEvent");
|
|
};
|
|
a.updateProperties = function() {
|
|
k("public flash.accessibility.Accessibility::static updateProperties");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a._active = !1;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.Accessibility = m;
|
|
})(f.accessibility || (f.accessibility = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.accessibility.AccessibilityImplementation");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.AccessibilityImplementation = m;
|
|
})(f.accessibility || (f.accessibility = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(b.ASNative);
|
|
f.AccessibilityProperties = k;
|
|
})(f.accessibility || (f.accessibility = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.assert, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function c(a, b, c) {
|
|
"undefined" === typeof b && (b = !1);
|
|
"undefined" === typeof c && (c = !1);
|
|
this._type = m(a);
|
|
this._bubbles = !!b;
|
|
this._cancelable = !!c;
|
|
this._currentTarget = this._target = null;
|
|
this._eventPhase = f.EventPhase.AT_TARGET;
|
|
this._isDefaultPrevented = this._stopImmediatePropagation = this._stopPropagation = !1;
|
|
}
|
|
__extends(c, a);
|
|
c.getInstance = function(a, b) {
|
|
var d;
|
|
"undefined" === typeof b && (b = !1);
|
|
"undefined" === typeof d && (d = !1);
|
|
var f = c._instances[a];
|
|
f || (f = new c(a, b, d), c._instances[a] = f);
|
|
f._bubbles = b;
|
|
f._cancelable = d;
|
|
return f;
|
|
};
|
|
c.getBroadcastInstance = function(a) {
|
|
var b, d;
|
|
"undefined" === typeof b && (b = !1);
|
|
"undefined" === typeof d && (d = !1);
|
|
var f = c._instances[a];
|
|
f || (f = new c(a, b, d), c._instances[a] = f, k(c.isBroadcastEventType(a)));
|
|
f._isBroadcastEvent = !0;
|
|
f._bubbles = b;
|
|
f._cancelable = d;
|
|
return f;
|
|
};
|
|
c.isBroadcastEventType = function(a) {
|
|
switch(a) {
|
|
case c.ENTER_FRAME:
|
|
;
|
|
case c.EXIT_FRAME:
|
|
;
|
|
case c.FRAME_CONSTRUCTED:
|
|
;
|
|
case c.RENDER:
|
|
;
|
|
case c.ACTIVATE:
|
|
;
|
|
case c.DEACTIVATE:
|
|
;
|
|
case c.AVM1_LOAD:
|
|
return!0;
|
|
}
|
|
return!1;
|
|
};
|
|
Object.defineProperty(c.prototype, "type", {get:function() {
|
|
return this._type;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "bubbles", {get:function() {
|
|
return this._bubbles;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "cancelable", {get:function() {
|
|
return this._cancelable;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "target", {get:function() {
|
|
return this._target;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "currentTarget", {get:function() {
|
|
return this._currentTarget;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "eventPhase", {get:function() {
|
|
return this._eventPhase;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.stopPropagation = function() {
|
|
this._stopPropagation = !0;
|
|
};
|
|
c.prototype.stopImmediatePropagation = function() {
|
|
this._stopImmediatePropagation = this._stopPropagation = !0;
|
|
};
|
|
c.prototype.preventDefault = function() {
|
|
this._cancelable && (this._isDefaultPrevented = !0);
|
|
};
|
|
c.prototype.isDefaultPrevented = function() {
|
|
return this._isDefaultPrevented;
|
|
};
|
|
c.prototype.isBroadcastEvent = function() {
|
|
return!!this._isBroadcastEvent;
|
|
};
|
|
c.prototype.clone = function() {
|
|
return new c(this._type, this._bubbles, this._cancelable);
|
|
};
|
|
c.prototype.toString = function() {
|
|
return this.formatToString("Event", "type", "bubbles", "cancelable", "eventPhase");
|
|
};
|
|
c.prototype.formatToString = function(a) {
|
|
for (var b = [], c = 0;c < arguments.length - 1;c++) {
|
|
b[c] = arguments[c + 1];
|
|
}
|
|
for (var c = "[" + a, d = 0;d < b.length;d++) {
|
|
var f = b[d], g = this.asGetPublicProperty(f);
|
|
"string" === typeof g && (g = '"' + g + '"');
|
|
c += " " + f + "=" + g;
|
|
}
|
|
return c + "]";
|
|
};
|
|
c.classInitializer = function() {
|
|
c._instances = b.ObjectUtilities.createMap();
|
|
};
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
c.ACTIVATE = "activate";
|
|
c.ADDED = "added";
|
|
c.ADDED_TO_STAGE = "addedToStage";
|
|
c.CANCEL = "cancel";
|
|
c.CHANGE = "change";
|
|
c.CLEAR = "clear";
|
|
c.CLOSE = "close";
|
|
c.COMPLETE = "complete";
|
|
c.CONNECT = "connect";
|
|
c.COPY = "copy";
|
|
c.CUT = "cut";
|
|
c.DEACTIVATE = "deactivate";
|
|
c.ENTER_FRAME = "enterFrame";
|
|
c.FRAME_CONSTRUCTED = "frameConstructed";
|
|
c.EXIT_FRAME = "exitFrame";
|
|
c.FRAME_LABEL = "frameLabel";
|
|
c.ID3 = "id3";
|
|
c.INIT = "init";
|
|
c.MOUSE_LEAVE = "mouseLeave";
|
|
c.OPEN = "open";
|
|
c.PASTE = "paste";
|
|
c.REMOVED = "removed";
|
|
c.REMOVED_FROM_STAGE = "removedFromStage";
|
|
c.RENDER = "render";
|
|
c.RESIZE = "resize";
|
|
c.SCROLL = "scroll";
|
|
c.TEXT_INTERACTION_MODE_CHANGE = "textInteractionModeChange";
|
|
c.SELECT = "select";
|
|
c.SELECT_ALL = "selectAll";
|
|
c.SOUND_COMPLETE = "soundComplete";
|
|
c.TAB_CHILDREN_CHANGE = "tabChildrenChange";
|
|
c.TAB_ENABLED_CHANGE = "tabEnabledChange";
|
|
c.TAB_INDEX_CHANGE = "tabIndexChange";
|
|
c.UNLOAD = "unload";
|
|
c.FULLSCREEN = "fullScreen";
|
|
c.CONTEXT3D_CREATE = "context3DCreate";
|
|
c.TEXTURE_READY = "textureReady";
|
|
c.VIDEO_FRAME = "videoFrame";
|
|
c.SUSPEND = "suspend";
|
|
c.AVM1_INIT = "initialize";
|
|
c.AVM1_CONSTRUCT = "construct";
|
|
c.AVM1_LOAD = "load";
|
|
return c;
|
|
}(g.ASNative);
|
|
f.Event = d;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(t) {
|
|
var s = b.AVM2.Runtime.asCoerceString, m = b.ObjectUtilities.createEmptyObject, d = b.isFunction, a = b.isNullOrUndefined, c = b.AVM2.Runtime.throwError, n = b.Debug.assert, p = function() {
|
|
return function(a, b, c) {
|
|
this.listener = a;
|
|
this.useCapture = b;
|
|
this.priority = c;
|
|
};
|
|
}(), e = function() {
|
|
function a() {
|
|
this._aliasCount = 0;
|
|
this._entries = [];
|
|
}
|
|
a.prototype.isEmpty = function() {
|
|
return 0 === this._entries.length;
|
|
};
|
|
a.prototype.insert = function(a, b, c) {
|
|
for (var d = this._entries, e = d.length, f = e - 1;0 <= f;f--) {
|
|
var l = d[f];
|
|
if (l.listener === a) {
|
|
return;
|
|
}
|
|
if (c > l.priority) {
|
|
e = f;
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
d = this.ensureNonAliasedEntries();
|
|
d.splice(e, 0, new p(a, b, c));
|
|
};
|
|
a.prototype.ensureNonAliasedEntries = function() {
|
|
var a = this._entries;
|
|
0 < this._aliasCount && (a = this._entries = a.slice(), this._aliasCount = 0);
|
|
return a;
|
|
};
|
|
a.prototype.remove = function(a) {
|
|
for (var b = this._entries, c = 0;c < b.length;c++) {
|
|
if (b[c].listener === a) {
|
|
this.ensureNonAliasedEntries().splice(c, 1);
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
a.prototype.snapshot = function() {
|
|
this._aliasCount++;
|
|
return this._entries;
|
|
};
|
|
a.prototype.releaseSnapshot = function(a) {
|
|
this._entries === a && 0 < this._aliasCount && this._aliasCount--;
|
|
};
|
|
return a;
|
|
}(), q = function() {
|
|
function a() {
|
|
this.reset();
|
|
}
|
|
a.prototype.reset = function() {
|
|
this._queues = b.ObjectUtilities.createEmptyObject();
|
|
};
|
|
a.prototype.add = function(a, b) {
|
|
n(t.Event.isBroadcastEventType(a), "Can only register broadcast events.");
|
|
var c = this._queues[a] || (this._queues[a] = []);
|
|
0 <= c.indexOf(b) || c.push(b);
|
|
};
|
|
a.prototype.remove = function(a, b) {
|
|
n(t.Event.isBroadcastEventType(a), "Can only unregister broadcast events.");
|
|
var c = this._queues[a];
|
|
n(c, "There should already be a queue for this.");
|
|
var d = c.indexOf(b);
|
|
n(0 <= d, "Target should be somewhere in this queue.");
|
|
c[d] = null;
|
|
n(0 > c.indexOf(b), "Target shouldn't be in this queue anymore.");
|
|
};
|
|
a.prototype.dispatchEvent = function(a) {
|
|
n(a.isBroadcastEvent(), "Cannot dispatch non-broadcast events.");
|
|
var b = this._queues[a.type];
|
|
if (b) {
|
|
for (var c = 0, d = 0;d < b.length;d++) {
|
|
var e = b[d];
|
|
null === e ? c++ : e.dispatchEvent(a);
|
|
}
|
|
if (16 < c && c > b.length >> 1) {
|
|
c = [];
|
|
for (d = 0;d < b.length;d++) {
|
|
b[d] && c.push(b[d]);
|
|
}
|
|
this._queues[a.type] = c;
|
|
}
|
|
}
|
|
};
|
|
a.prototype.getQueueLength = function(a) {
|
|
return this._queues[a] ? this._queues[a].length : 0;
|
|
};
|
|
return a;
|
|
}();
|
|
t.BroadcastEventDispatchQueue = q;
|
|
var l = function(b) {
|
|
function l(a) {
|
|
"undefined" === typeof a && (a = null);
|
|
this._target = a || this;
|
|
}
|
|
__extends(l, b);
|
|
l.prototype._getListenersForType = function(a, b) {
|
|
var c = a ? this._captureListeners : this._targetOrBubblingListeners;
|
|
return c ? c[b] : null;
|
|
};
|
|
l.prototype._getListeners = function(a) {
|
|
return a ? this._captureListeners || (this._captureListeners = m()) : this._targetOrBubblingListeners || (this._targetOrBubblingListeners = m());
|
|
};
|
|
l.prototype.addEventListener = function(b, h, f, n, g) {
|
|
"undefined" === typeof f && (f = !1);
|
|
"undefined" === typeof n && (n = 0);
|
|
"undefined" === typeof g && (g = !1);
|
|
(2 > arguments.length || 5 < arguments.length) && c("ArgumentError", k.Errors.WrongArgumentCountError, "flash.events::EventDispatcher/addEventListener()", 2, arguments.length);
|
|
d(h) || c("TypeError", k.Errors.CheckTypeFailedError, h, "Function");
|
|
a(b) && c("TypeError", k.Errors.NullPointerError, "type");
|
|
b = s(b);
|
|
f = !!f;
|
|
n |= 0;
|
|
g = !!g;
|
|
var m = this._getListeners(f);
|
|
(m[b] || (m[b] = new e)).insert(h, f, n);
|
|
!f && t.Event.isBroadcastEventType(b) && l.broadcastEventDispatchQueue.add(b, this);
|
|
};
|
|
l.prototype.removeEventListener = function(b, h, e) {
|
|
"undefined" === typeof e && (e = !1);
|
|
(2 > arguments.length || 3 < arguments.length) && c("ArgumentError", k.Errors.WrongArgumentCountError, "flash.events::EventDispatcher/removeEventListener()", 2, arguments.length);
|
|
d(h) || c("TypeError", k.Errors.CheckTypeFailedError, h, "Function");
|
|
a(b) && c("TypeError", k.Errors.NullPointerError, "type");
|
|
b = s(b);
|
|
var f = this._getListeners(!!e), n = f[b];
|
|
n && (n.remove(h), n.isEmpty() && (!e && t.Event.isBroadcastEventType(b) && l.broadcastEventDispatchQueue.remove(b, this), f[b] = null));
|
|
};
|
|
l.prototype._hasTargetOrBubblingEventListener = function(a) {
|
|
return!(!this._targetOrBubblingListeners || !this._targetOrBubblingListeners[a]);
|
|
};
|
|
l.prototype._hasCaptureEventListener = function(a) {
|
|
return!(!this._captureListeners || !this._captureListeners[a]);
|
|
};
|
|
l.prototype._hasEventListener = function(a) {
|
|
return this._hasTargetOrBubblingEventListener(a) || this._hasCaptureEventListener(a);
|
|
};
|
|
l.prototype.hasEventListener = function(b) {
|
|
1 !== arguments.length && c("ArgumentError", k.Errors.WrongArgumentCountError, "flash.events::EventDispatcher/hasEventListener()", 1, arguments.length);
|
|
a(b) && c("TypeError", k.Errors.NullPointerError, "type");
|
|
b = s(b);
|
|
return this._hasEventListener(b);
|
|
};
|
|
l.prototype.willTrigger = function(b) {
|
|
1 !== arguments.length && c("ArgumentError", k.Errors.WrongArgumentCountError, "flash.events::EventDispatcher/hasEventListener()", 1, arguments.length);
|
|
a(b) && c("TypeError", k.Errors.NullPointerError, "type");
|
|
b = s(b);
|
|
if (this._hasEventListener(b)) {
|
|
return!0;
|
|
}
|
|
if (f.display.DisplayObject.isType(this)) {
|
|
var d = this._parent;
|
|
do {
|
|
if (d._hasEventListener(b)) {
|
|
return!0;
|
|
}
|
|
} while (d = d._parent);
|
|
}
|
|
return!1;
|
|
};
|
|
l.prototype._skipDispatchEvent = function(a) {
|
|
if (!a.isBroadcastEvent() && f.display.DisplayObject.isType(this)) {
|
|
for (var b = this;b;) {
|
|
if (b._hasEventListener(a.type)) {
|
|
return!1;
|
|
}
|
|
b = b._parent;
|
|
}
|
|
return!0;
|
|
}
|
|
return!this._hasEventListener(a.type);
|
|
};
|
|
l.prototype.dispatchEvent = function(a) {
|
|
if (this._skipDispatchEvent(a)) {
|
|
return!0;
|
|
}
|
|
1 !== arguments.length && c("ArgumentError", k.Errors.WrongArgumentCountError, "flash.events::EventDispatcher/dispatchEvent()", 1, arguments.length);
|
|
k.counter.count("EventDispatcher::dispatchEvent");
|
|
var b = a._type, d = this._target;
|
|
k.counter.count("EventDispatcher::dispatchEvent(" + b + ")");
|
|
var e = !0, g = [];
|
|
if (!a.isBroadcastEvent() && f.display.DisplayObject.isType(this)) {
|
|
for (var m = this._parent;m;) {
|
|
m._hasEventListener(b) && g.push(m), m = m._parent;
|
|
}
|
|
for (m = g.length - 1;0 <= m && e;m--) {
|
|
var p = g[m];
|
|
if (p._hasCaptureEventListener(b)) {
|
|
var q = p._getListenersForType(!0, b);
|
|
n(q);
|
|
e = l.callListeners(q, a, d, p, t.EventPhase.CAPTURING_PHASE);
|
|
}
|
|
}
|
|
}
|
|
e && (q = this._getListenersForType(!1, b)) && (e = l.callListeners(this._getListeners(!1)[b], a, d, d, t.EventPhase.AT_TARGET));
|
|
if (!a.isBroadcastEvent() && e && a.bubbles) {
|
|
for (m = 0;m < g.length && e;m++) {
|
|
p = g[m], p._hasTargetOrBubblingEventListener(b) && (q = p._getListenersForType(!1, b), e = l.callListeners(q, a, d, p, t.EventPhase.BUBBLING_PHASE));
|
|
}
|
|
}
|
|
return!a._isDefaultPrevented;
|
|
};
|
|
l.callListeners = function(a, b, c, d, e) {
|
|
if (a.isEmpty()) {
|
|
return!0;
|
|
}
|
|
b._target && (b = b.clone());
|
|
for (var f = a.snapshot(), l = 0;l < f.length;l++) {
|
|
var n = f[l];
|
|
b._target = c;
|
|
b._currentTarget = d;
|
|
b._eventPhase = e;
|
|
n.listener(b);
|
|
if (b._stopImmediatePropagation) {
|
|
break;
|
|
}
|
|
}
|
|
a.releaseSnapshot(f);
|
|
return!b._stopPropagation;
|
|
};
|
|
l.classInitializer = function() {
|
|
l.broadcastEventDispatchQueue = new q;
|
|
};
|
|
l.initializer = function() {
|
|
this._target = this;
|
|
this._targetOrBubblingListeners = this._captureListeners = null;
|
|
};
|
|
l.classSymbols = null;
|
|
l.instanceSymbols = null;
|
|
return l;
|
|
}(g.ASNative);
|
|
t.EventDispatcher = l;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
b.call(this);
|
|
k("Dummy Constructor: public flash.events.EventPhase");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.CAPTURING_PHASE = 1;
|
|
a.AT_TARGET = 2;
|
|
a.BUBBLING_PHASE = 3;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.EventPhase = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g, e) {
|
|
b.call(this, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.TextEvent");
|
|
}
|
|
__extends(a, b);
|
|
a.prototype.copyNativeData = function(a) {
|
|
k("public flash.events.TextEvent::copyNativeData");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.LINK = "link";
|
|
a.TEXT_INPUT = "textInput";
|
|
return a;
|
|
}(f.events.Event);
|
|
g.TextEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g, e, m) {
|
|
b.call(this, void 0, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.ErrorEvent");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.ERROR = "error";
|
|
return a;
|
|
}(f.events.TextEvent);
|
|
g.ErrorEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g, e) {
|
|
b.call(this, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.GameInputEvent");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.DEVICE_ADDED = "deviceAdded";
|
|
a.DEVICE_REMOVED = "deviceRemoved";
|
|
return a;
|
|
}(f.events.Event);
|
|
g.GameInputEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.AVM2.Runtime.asCoerceString, m = b.Debug.notImplemented, d = b.Debug.somewhatImplemented, a = function(a) {
|
|
function b(d, e, f, l, n, g, r, h, k) {
|
|
a.call(this, void 0, void 0, void 0);
|
|
m("Dummy Constructor: public flash.events.GestureEvent");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "localX", {get:function() {
|
|
return this._localX;
|
|
}, set:function(a) {
|
|
this._localX = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "localY", {get:function() {
|
|
return this._localY;
|
|
}, set:function(a) {
|
|
this._localY = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "stageX", {get:function() {
|
|
d("public flash.events.GestureEvent::stageX");
|
|
return 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "stageY", {get:function() {
|
|
d("public flash.events.GestureEvent::stageY");
|
|
return 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "ctrlKey", {get:function() {
|
|
return this._ctrlKey;
|
|
}, set:function(a) {
|
|
this._ctrlKey = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "altKey", {get:function() {
|
|
return this._altKey;
|
|
}, set:function(a) {
|
|
this._altKey = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "shiftKey", {get:function() {
|
|
return this._shiftKey;
|
|
}, set:function(a) {
|
|
this._shiftKey = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "phase", {get:function() {
|
|
return this._phase;
|
|
}, set:function(a) {
|
|
this._phase = k(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.updateAfterEvent = function() {
|
|
d("public flash.events.GestureEvent::updateAfterEvent");
|
|
};
|
|
b.prototype.NativeCtor = function(a, b, c, d, f, n) {
|
|
this._phase = k(a);
|
|
this._localX = +b;
|
|
this._localY = +c;
|
|
this._ctrlKey = !!d;
|
|
this._altKey = !!f;
|
|
this._shiftKey = !!n;
|
|
};
|
|
b.prototype.clone = function() {
|
|
return new f.events.GestureEvent(this.type, this.bubbles, this.cancelable, this.phase, this.localX, this.localY, this.ctrlKey, this.altKey, this.shiftKey);
|
|
};
|
|
b.prototype.toString = function() {
|
|
return this.formatToString("GestureEvent", "type", "bubbles", "cancelable", "eventPhase", "localX", "localY", "ctrlKey", "altKey", "shiftKey");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
b.GESTURE_TWO_FINGER_TAP = "gestureTwoFingerTap";
|
|
return b;
|
|
}(f.events.Event);
|
|
g.GestureEvent = a;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g, e) {
|
|
b.call(this, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.HTTPStatusEvent");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.HTTP_STATUS = "httpStatus";
|
|
a.HTTP_RESPONSE_STATUS = "httpResponseStatus";
|
|
return a;
|
|
}(f.events.Event);
|
|
g.HTTPStatusEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g, e, m) {
|
|
b.call(this, void 0, void 0, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.IOErrorEvent");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.IO_ERROR = "ioError";
|
|
a.NETWORK_ERROR = "networkError";
|
|
a.DISK_ERROR = "diskError";
|
|
a.VERIFY_ERROR = "verifyError";
|
|
return a;
|
|
}(f.events.ErrorEvent);
|
|
g.IOErrorEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.somewhatImplemented, m = b.Debug.notImplemented, d = function(a) {
|
|
function b(c, d, e, f, l, g, k, r, h) {
|
|
a.call(this, void 0, void 0, void 0);
|
|
m("Dummy Constructor: public flash.events.KeyboardEvent");
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.updateAfterEvent = function() {
|
|
k("public flash.events.KeyboardEvent::updateAfterEvent");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
b.KEY_DOWN = "keyDown";
|
|
b.KEY_UP = "keyUp";
|
|
return b;
|
|
}(f.events.Event);
|
|
g.KeyboardEvent = d;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.Debug.somewhatImplemented, d = function(a) {
|
|
function c(b, c, d, f, l, g, m, r, h, x, y) {
|
|
a.call(this, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.MouseEvent");
|
|
}
|
|
__extends(c, a);
|
|
c.typeFromDOMType = function(a) {
|
|
switch(a) {
|
|
case "click":
|
|
return c.CLICK;
|
|
case "dblclick":
|
|
return c.DOUBLE_CLICK;
|
|
case "mousedown":
|
|
return c.MOUSE_DOWN;
|
|
case "mousemove":
|
|
return c.MOUSE_MOVE;
|
|
case "mouseup":
|
|
return c.MOUSE_UP;
|
|
default:
|
|
k(a);
|
|
}
|
|
};
|
|
Object.defineProperty(c.prototype, "localX", {get:function() {
|
|
return this._localX / 20 | 0;
|
|
}, set:function(a) {
|
|
this._localX = 20 * a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "localY", {get:function() {
|
|
return this._localY / 20 | 0;
|
|
}, set:function(a) {
|
|
this._localY = 20 * a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "stageX", {get:function() {
|
|
return isNaN(this.localX + this.localY) ? Number.NaN : this._getGlobalPoint().x / 20 | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "stageY", {get:function() {
|
|
return isNaN(this.localX + this.localY) ? Number.NaN : this._getGlobalPoint().y / 20 | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "movementX", {get:function() {
|
|
m("public flash.events.MouseEvent::set movementX");
|
|
return this._movementX || 0;
|
|
}, set:function(a) {
|
|
this._movementX = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "movementY", {get:function() {
|
|
m("public flash.events.MouseEvent::set movementY");
|
|
return this._movementY || 0;
|
|
}, set:function(a) {
|
|
this._movementY = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "delta", {get:function() {
|
|
return this._delta;
|
|
}, set:function(a) {
|
|
this._delta = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "ctrlKey", {get:function() {
|
|
return this._ctrlKey;
|
|
}, set:function(a) {
|
|
this._ctrlKey = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "altKey", {get:function() {
|
|
return this._altKey;
|
|
}, set:function(a) {
|
|
this._altKey = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "shiftKey", {get:function() {
|
|
return this._shiftKey;
|
|
}, set:function(a) {
|
|
this._shiftKey = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "buttonDown", {get:function() {
|
|
return this._buttonDown;
|
|
}, set:function(a) {
|
|
this._buttonDown = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "relatedObject", {get:function() {
|
|
return this._relatedObject;
|
|
}, set:function(a) {
|
|
this._relatedObject = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "isRelatedObjectInaccessible", {get:function() {
|
|
return this._isRelatedObjectInaccessible;
|
|
}, set:function(a) {
|
|
this._isRelatedObjectInaccessible = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.updateAfterEvent = function() {
|
|
b.AVM2.Runtime.AVM2.instance.globals["Shumway.Player.Utils"].requestRendering();
|
|
};
|
|
c.prototype._getGlobalPoint = function() {
|
|
var a = this._position;
|
|
a || (a = this._position = new f.geom.Point);
|
|
this.target ? (a.setTo(this._localX, this._localY), this._target._getConcatenatedMatrix().transformPointInPlace(a)) : a.setTo(0, 0);
|
|
return a;
|
|
};
|
|
c.prototype.clone = function() {
|
|
return new f.events.MouseEvent(this.type, this.bubbles, this.cancelable, this.localX, this.localY, this.relatedObject, this.ctrlKey, this.altKey, this.shiftKey, this.buttonDown, this.delta);
|
|
};
|
|
c.prototype.toString = function() {
|
|
return this.formatToString("MouseEvent", "type", "bubbles", "cancelable", "eventPhase", "localX", "localY", "relatedObject", "ctrlKey", "altKey", "shiftKey", "buttonDown", "delta");
|
|
};
|
|
c.classInitializer = null;
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
c.CLICK = "click";
|
|
c.DOUBLE_CLICK = "doubleClick";
|
|
c.MOUSE_DOWN = "mouseDown";
|
|
c.MOUSE_MOVE = "mouseMove";
|
|
c.MOUSE_OUT = "mouseOut";
|
|
c.MOUSE_OVER = "mouseOver";
|
|
c.MOUSE_UP = "mouseUp";
|
|
c.RELEASE_OUTSIDE = "releaseOutside";
|
|
c.MOUSE_WHEEL = "mouseWheel";
|
|
c.ROLL_OUT = "rollOut";
|
|
c.ROLL_OVER = "rollOver";
|
|
c.MIDDLE_CLICK = "middleClick";
|
|
c.MIDDLE_MOUSE_DOWN = "middleMouseDown";
|
|
c.MIDDLE_MOUSE_UP = "middleMouseUp";
|
|
c.RIGHT_CLICK = "rightClick";
|
|
c.RIGHT_MOUSE_DOWN = "rightMouseDown";
|
|
c.RIGHT_MOUSE_UP = "rightMouseUp";
|
|
c.CONTEXT_MENU = "contextMenu";
|
|
return c;
|
|
}(f.events.Event);
|
|
g.MouseEvent = d;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(g) {
|
|
var k = function(b) {
|
|
function d(a, b, d, f) {
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.NET_STATUS = "netStatus";
|
|
return d;
|
|
}(b.events.Event);
|
|
g.NetStatusEvent = k;
|
|
})(b.events || (b.events = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g, e, m) {
|
|
b.call(this, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.ProgressEvent");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "bytesLoaded", {get:function() {
|
|
return this._bytesLoaded;
|
|
}, set:function(a) {
|
|
this._bytesLoaded = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "bytesTotal", {get:function() {
|
|
return this._bytesTotal;
|
|
}, set:function(a) {
|
|
this._bytesTotal = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.clone = function() {
|
|
return new f.events.ProgressEvent(this._type, this._bubbles, this._cancelable, this._bytesLoaded, this._bytesTotal);
|
|
};
|
|
a.prototype.toString = function() {
|
|
return this.formatToString("ProgressEvent", "bubbles", "cancelable", "eventPhase", "bytesLoaded", "bytesTotal");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.PROGRESS = "progress";
|
|
a.SOCKET_DATA = "socketData";
|
|
return a;
|
|
}(f.events.Event);
|
|
g.ProgressEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g, e, m) {
|
|
b.call(this, void 0, void 0, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.SecurityErrorEvent");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.SECURITY_ERROR = "securityError";
|
|
return a;
|
|
}(f.events.ErrorEvent);
|
|
g.SecurityErrorEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g) {
|
|
b.call(this, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.TimerEvent");
|
|
}
|
|
__extends(a, b);
|
|
a.prototype.updateAfterEvent = function() {
|
|
k("public flash.events.TimerEvent::updateAfterEvent");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.TIMER = "timer";
|
|
a.TIMER_COMPLETE = "timerComplete";
|
|
return a;
|
|
}(f.events.Event);
|
|
g.TimerEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g, e, m, l, u, w, r, h, x, y, t, I) {
|
|
b.call(this, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.TouchEvent");
|
|
}
|
|
__extends(a, b);
|
|
a.prototype.updateAfterEvent = function() {
|
|
k("public flash.events.TouchEvent::updateAfterEvent");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.TOUCH_BEGIN = "touchBegin";
|
|
a.TOUCH_END = "touchEnd";
|
|
a.TOUCH_MOVE = "touchMove";
|
|
a.TOUCH_OVER = "touchOver";
|
|
a.TOUCH_OUT = "touchOut";
|
|
a.TOUCH_ROLL_OVER = "touchRollOver";
|
|
a.TOUCH_ROLL_OUT = "touchRollOut";
|
|
a.TOUCH_TAP = "touchTap";
|
|
a.PROXIMITY_BEGIN = "proximityBegin";
|
|
a.PROXIMITY_END = "proximityEnd";
|
|
a.PROXIMITY_MOVE = "proximityMove";
|
|
a.PROXIMITY_OUT = "proximityOut";
|
|
a.PROXIMITY_OVER = "proximityOver";
|
|
a.PROXIMITY_ROLL_OUT = "proximityRollOut";
|
|
a.PROXIMITY_ROLL_OVER = "proximityRollOver";
|
|
return a;
|
|
}(f.events.Event);
|
|
g.TouchEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, f, g, e) {
|
|
b.call(this, void 0, void 0, void 0, void 0, void 0);
|
|
k("Dummy Constructor: public flash.events.UncaughtErrorEvent");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.UNCAUGHT_ERROR = "uncaughtError";
|
|
return a;
|
|
}(f.events.ErrorEvent);
|
|
g.UncaughtErrorEvent = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
b.call(this, void 0);
|
|
k("Dummy Constructor: public flash.events.UncaughtErrorEvents");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.UncaughtErrorEvents = m;
|
|
})(f.events || (f.events = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = b.Debug.notImplemented, m = b.Debug.somewhatImplemented, d = b.isNullOrUndefined, a = b.AVM2.Runtime.asCoerceString, c = b.AVM2.Runtime.throwError, n = b.AVM2.Runtime.checkNullParameter, p = b.Debug.assert, e = b.Bounds, q = f.geom, l = f.events;
|
|
(function(a) {
|
|
a[a.None = 0] = "None";
|
|
a[a.Visible = 1] = "Visible";
|
|
a[a.InvalidLineBounds = 2] = "InvalidLineBounds";
|
|
a[a.InvalidFillBounds = 4] = "InvalidFillBounds";
|
|
a[a.InvalidMatrix = 8] = "InvalidMatrix";
|
|
a[a.InvalidInvertedMatrix = 16] = "InvalidInvertedMatrix";
|
|
a[a.InvalidConcatenatedMatrix = 32] = "InvalidConcatenatedMatrix";
|
|
a[a.InvalidInvertedConcatenatedMatrix = 64] = "InvalidInvertedConcatenatedMatrix";
|
|
a[a.InvalidConcatenatedColorTransform = 128] = "InvalidConcatenatedColorTransform";
|
|
a[a.Constructed = 256] = "Constructed";
|
|
a[a.Destroyed = 512] = "Destroyed";
|
|
a[a.OwnedByTimeline = 1024] = "OwnedByTimeline";
|
|
a[a.AnimatedByTimeline = 2048] = "AnimatedByTimeline";
|
|
a[a.HasFrameScriptPending = 4096] = "HasFrameScriptPending";
|
|
a[a.ContainsFrameScriptPendingChildren = 8192] = "ContainsFrameScriptPendingChildren";
|
|
a[a.CacheAsBitmap = 16384] = "CacheAsBitmap";
|
|
a[a.DirtyMatrix = 1048576] = "DirtyMatrix";
|
|
a[a.DirtyChildren = 2097152] = "DirtyChildren";
|
|
a[a.DirtyGraphics = 4194304] = "DirtyGraphics";
|
|
a[a.DirtyTextContent = 8388608] = "DirtyTextContent";
|
|
a[a.DirtyBitmapData = 16777216] = "DirtyBitmapData";
|
|
a[a.DirtyNetStream = 33554432] = "DirtyNetStream";
|
|
a[a.DirtyColorTransform = 67108864] = "DirtyColorTransform";
|
|
a[a.DirtyMask = 134217728] = "DirtyMask";
|
|
a[a.DirtyClipDepth = 268435456] = "DirtyClipDepth";
|
|
a[a.DirtyMiscellaneousProperties = 536870912] = "DirtyMiscellaneousProperties";
|
|
a[a.Dirty = a.DirtyMatrix | a.DirtyChildren | a.DirtyGraphics | a.DirtyTextContent | a.DirtyBitmapData | a.DirtyNetStream | a.DirtyColorTransform | a.DirtyMask | a.DirtyClipDepth | a.DirtyMiscellaneousProperties] = "Dirty";
|
|
})(g.DisplayObjectFlags || (g.DisplayObjectFlags = {}));
|
|
(function(a) {
|
|
a[a.None = 0] = "None";
|
|
a[a.Continue = 0] = "Continue";
|
|
a[a.Stop = 1] = "Stop";
|
|
a[a.Skip = 2] = "Skip";
|
|
a[a.FrontToBack = 8] = "FrontToBack";
|
|
a[a.Filter = 16] = "Filter";
|
|
})(g.VisitorFlags || (g.VisitorFlags = {}));
|
|
(function(a) {
|
|
a[a.HitTestBounds = 0] = "HitTestBounds";
|
|
a[a.HitTestBoundsAndMask = 1] = "HitTestBoundsAndMask";
|
|
a[a.HitTestShape = 2] = "HitTestShape";
|
|
a[a.Mouse = 3] = "Mouse";
|
|
a[a.ObjectsUnderPoint = 4] = "ObjectsUnderPoint";
|
|
})(g.HitTestingType || (g.HitTestingType = {}));
|
|
(function(a) {
|
|
a[a.None = 0] = "None";
|
|
a[a.Bounds = 1] = "Bounds";
|
|
a[a.Shape = 2] = "Shape";
|
|
})(g.HitTestingResult || (g.HitTestingResult = {}));
|
|
var u = function(u) {
|
|
function r() {
|
|
l.EventDispatcher.instanceConstructorNoInitialize.call(this);
|
|
this._addReference();
|
|
this._setFlags(256);
|
|
}
|
|
__extends(r, u);
|
|
r.getNextSyncID = function() {
|
|
return this._syncID++;
|
|
};
|
|
r.reset = function() {
|
|
r._advancableInstances = new b.WeakList;
|
|
};
|
|
r.createAnimatedDisplayObject = function(a, b) {
|
|
var c = a.symbol, d = c.symbolClass, c = d.isSubtypeOf(f.display.BitmapData) ? f.display.Bitmap.initializeFrom(c) : d.initializeFrom(c);
|
|
c._setFlags(2048);
|
|
c._setFlags(1024);
|
|
c._animate(a);
|
|
b && d.instanceConstructorNoInitialize.call(c);
|
|
return c;
|
|
};
|
|
r.performFrameNavigation = function(a, b) {
|
|
a ? (r._runScripts = b, k.enterTimeline("DisplayObject.performFrameNavigation", {instances:0})) : b = r._runScripts;
|
|
p(16384 > r._advancableInstances.length, "Too many advancable instances.");
|
|
r._advancableInstances.forEach(function(b) {
|
|
b._initFrame(a);
|
|
});
|
|
a && b && r._broadcastFrameEvent(l.Event.ENTER_FRAME);
|
|
r._advancableInstances.forEach(function(a) {
|
|
a._constructFrame();
|
|
});
|
|
b ? (r._broadcastFrameEvent(l.Event.FRAME_CONSTRUCTED), r._advancableInstances.forEach(function(a) {
|
|
g.MovieClip.isInstanceOf(a) && !a.parent && a._enqueueFrameScripts();
|
|
}), f.display.DisplayObject._stage._enqueueFrameScripts(), g.MovieClip.runFrameScripts(), r._broadcastFrameEvent(l.Event.EXIT_FRAME)) : g.MovieClip.reset();
|
|
a && (k.leaveTimeline(), r._runScripts = !0);
|
|
};
|
|
r._broadcastFrameEvent = function(a) {
|
|
var b;
|
|
switch(a) {
|
|
case l.Event.ENTER_FRAME:
|
|
;
|
|
case l.Event.FRAME_CONSTRUCTED:
|
|
;
|
|
case l.Event.EXIT_FRAME:
|
|
;
|
|
case l.Event.RENDER:
|
|
b = l.Event.getBroadcastInstance(a);
|
|
}
|
|
p(b, "Invalid frame event.");
|
|
l.EventDispatcher.broadcastEventDispatchQueue.dispatchEvent(b);
|
|
};
|
|
r.prototype._setInitialName = function() {
|
|
this._name = "instance" + f.display.DisplayObject._instanceID++;
|
|
};
|
|
r.prototype._setParent = function(a, b) {
|
|
var c = this._parent;
|
|
p(a !== this);
|
|
this._parent = a;
|
|
this._depth = b;
|
|
a && (this._addReference(), a && this._hasAnyFlags(12288) && a._propagateFlagsUp(8192));
|
|
c && this._removeReference();
|
|
};
|
|
r.prototype._setFillAndLineBoundsFromWidthAndHeight = function(a, b) {
|
|
this._fillBounds.width = a;
|
|
this._fillBounds.height = b;
|
|
this._lineBounds.width = a;
|
|
this._lineBounds.height = b;
|
|
this._removeFlags(6);
|
|
this._invalidateParentFillAndLineBounds(!0, !0);
|
|
};
|
|
r.prototype._setFillAndLineBoundsFromSymbol = function(a) {
|
|
p(a.fillBounds || a.lineBounds, "Fill or Line bounds are not defined in the symbol.");
|
|
a.fillBounds && (this._fillBounds.copyFrom(a.fillBounds), this._removeFlags(4));
|
|
a.lineBounds && (this._lineBounds.copyFrom(a.lineBounds), this._removeFlags(2));
|
|
this._invalidateParentFillAndLineBounds(!!a.fillBounds, !!a.lineBounds);
|
|
};
|
|
r.prototype._setFlags = function(a) {
|
|
this._displayObjectFlags |= a;
|
|
};
|
|
r.prototype._setDirtyFlags = function(a) {
|
|
this._displayObjectFlags |= a;
|
|
this._parent && this._parent._propagateFlagsUp(2097152);
|
|
};
|
|
r.prototype._toggleFlags = function(a, b) {
|
|
this._displayObjectFlags = b ? this._displayObjectFlags | a : this._displayObjectFlags & ~a;
|
|
};
|
|
r.prototype._removeFlags = function(a) {
|
|
this._displayObjectFlags &= ~a;
|
|
};
|
|
r.prototype._hasFlags = function(a) {
|
|
return(this._displayObjectFlags & a) === a;
|
|
};
|
|
r.prototype._hasAnyFlags = function(a) {
|
|
return!!(this._displayObjectFlags & a);
|
|
};
|
|
r.prototype._propagateFlagsUp = function(a) {
|
|
if (!this._hasFlags(a)) {
|
|
this._setFlags(a);
|
|
var b = this._parent;
|
|
b && b._propagateFlagsUp(a);
|
|
}
|
|
};
|
|
r.prototype._propagateFlagsDown = function(a) {
|
|
this._setFlags(a);
|
|
};
|
|
r.prototype._findNearestAncestor = function() {
|
|
for (var a = this;a;) {
|
|
if (!1 === a._hasFlags(128)) {
|
|
return a;
|
|
}
|
|
a = a._parent;
|
|
}
|
|
return null;
|
|
};
|
|
r.prototype._findFurthestAncestorOrSelf = function() {
|
|
for (var a = this;a;) {
|
|
if (!a._parent) {
|
|
return a;
|
|
}
|
|
a = a._parent;
|
|
}
|
|
};
|
|
r.prototype._isAncestor = function(a) {
|
|
for (;a;) {
|
|
if (a === this) {
|
|
return!0;
|
|
}
|
|
a = a._parent;
|
|
}
|
|
return!1;
|
|
};
|
|
r._clampRotation = function(a) {
|
|
a %= 360;
|
|
180 < a ? a -= 360 : -180 > a && (a += 360);
|
|
return a;
|
|
};
|
|
r._getAncestors = function(a, b) {
|
|
var c = r._path;
|
|
for (c.length = 0;a && a !== b;) {
|
|
c.push(a), a = a._parent;
|
|
}
|
|
p(a === b, "Last ancestor is not an ancestor.");
|
|
return c;
|
|
};
|
|
r.prototype._getConcatenatedMatrix = function() {
|
|
this._hasFlags(32) && (this._parent ? this._parent._getConcatenatedMatrix().preMultiplyInto(this._getMatrix(), this._concatenatedMatrix) : this._concatenatedMatrix.copyFrom(this._getMatrix()), this._removeFlags(32));
|
|
return this._concatenatedMatrix;
|
|
};
|
|
r.prototype._getInvertedConcatenatedMatrix = function() {
|
|
this._hasFlags(64) && (this._getConcatenatedMatrix().invertInto(this._invertedConcatenatedMatrix), this._removeFlags(64));
|
|
return this._invertedConcatenatedMatrix;
|
|
};
|
|
r.prototype._setMatrix = function(a, b) {
|
|
if (b || !this._matrix.equals(a)) {
|
|
var c = this._matrix;
|
|
c.copyFrom(a);
|
|
b && c.toTwipsInPlace();
|
|
this._scaleX = c.getScaleX();
|
|
this._scaleY = c.getScaleY();
|
|
this._rotation = r._clampRotation(180 * a.getRotation() / Math.PI);
|
|
this._removeFlags(8);
|
|
this._setFlags(16);
|
|
this._setDirtyFlags(1048576);
|
|
this._invalidatePosition();
|
|
}
|
|
};
|
|
r.prototype._getMatrix = function() {
|
|
this._hasFlags(8) && (this._matrix.updateScaleAndRotation(this._scaleX, this._scaleY, this._rotation), this._removeFlags(8));
|
|
return this._matrix;
|
|
};
|
|
r.prototype._getInvertedMatrix = function() {
|
|
this._hasFlags(16) && (this._getMatrix().invertInto(this._invertedMatrix), this._removeFlags(16));
|
|
return this._invertedMatrix;
|
|
};
|
|
r.prototype._getConcatenatedColorTransform = function() {
|
|
if (!this.stage) {
|
|
return this._colorTransform.clone();
|
|
}
|
|
if (this._hasFlags(128)) {
|
|
var a = this._findNearestAncestor(), b = r._getAncestors(this, a), c = b.length - 1;
|
|
f.display.Stage.isType(b[c]) && c--;
|
|
for (var d = a && !f.display.Stage.isType(a) ? a._concatenatedColorTransform.clone() : new q.ColorTransform;0 <= c;) {
|
|
a = b[c--], p(a._hasFlags(128)), d.preMultiply(a._colorTransform), d.convertToFixedPoint(), a._concatenatedColorTransform.copyFrom(d), a._removeFlags(128);
|
|
}
|
|
}
|
|
return this._concatenatedColorTransform;
|
|
};
|
|
r.prototype._setColorTransform = function(a) {
|
|
this._colorTransform.copyFrom(a);
|
|
this._colorTransform.convertToFixedPoint();
|
|
this._propagateFlagsDown(128);
|
|
this._setDirtyFlags(67108864);
|
|
};
|
|
r.prototype._invalidateFillAndLineBounds = function(a, b) {
|
|
this._propagateFlagsUp((b ? 2 : 0) | (a ? 4 : 0));
|
|
};
|
|
r.prototype._invalidateParentFillAndLineBounds = function(a, b) {
|
|
this._parent && this._parent._invalidateFillAndLineBounds(a, b);
|
|
};
|
|
r.prototype._getContentBounds = function(a) {
|
|
"undefined" === typeof a && (a = !0);
|
|
var b, c;
|
|
a ? (b = 2, c = this._lineBounds) : (b = 4, c = this._fillBounds);
|
|
if (this._hasFlags(b)) {
|
|
var d = this._getGraphics();
|
|
d ? c.copyFrom(d._getContentBounds(a)) : c.setEmpty();
|
|
this._getChildBounds(c, a);
|
|
this._removeFlags(b);
|
|
}
|
|
return c;
|
|
};
|
|
r.prototype._getChildBounds = function(a, b) {
|
|
};
|
|
r.prototype._getTransformedBounds = function(a, b) {
|
|
var c = this._getContentBounds(b).clone();
|
|
if (a === this || c.isEmpty()) {
|
|
return c;
|
|
}
|
|
var d;
|
|
a ? (d = q.Matrix.TEMP_MATRIX, a._getInvertedConcatenatedMatrix().preMultiplyInto(this._getConcatenatedMatrix(), d)) : d = this._getConcatenatedMatrix();
|
|
d.transformBounds(c);
|
|
return c;
|
|
};
|
|
r.prototype._stopTimelineAnimation = function() {
|
|
this._removeFlags(2048);
|
|
};
|
|
r.prototype._invalidateMatrix = function() {
|
|
this._setDirtyFlags(1048576);
|
|
this._setFlags(24);
|
|
this._invalidatePosition();
|
|
};
|
|
r.prototype._invalidatePosition = function() {
|
|
this._propagateFlagsDown(96);
|
|
this._invalidateParentFillAndLineBounds(!0, !0);
|
|
};
|
|
r.prototype._animate = function(a) {
|
|
a.matrix && this._setMatrix(a.matrix, !1);
|
|
a.colorTransform && this._setColorTransform(a.colorTransform);
|
|
this._ratio = a.ratio;
|
|
a.name && (this._name = a.name);
|
|
this._clipDepth !== a.clipDepth && 0 <= a.clipDepth && (this._clipDepth = a.clipDepth, this._setDirtyFlags(268435456));
|
|
this._filters = a.filters;
|
|
a.blendMode && a.blendMode !== this._blendMode && (this._blendMode = a.blendMode, this._setDirtyFlags(536870912));
|
|
a.cacheAsBitmap && (this._setFlags(16384), this._setDirtyFlags(536870912));
|
|
a.visible !== this._hasFlags(1) && (this._toggleFlags(1, a.visible), this._setDirtyFlags(536870912));
|
|
};
|
|
r.prototype._propagateEvent = function(a) {
|
|
this.visit(function(b) {
|
|
b.dispatchEvent(a);
|
|
return 0;
|
|
}, 0);
|
|
};
|
|
Object.defineProperty(r.prototype, "x", {get:function() {
|
|
var a = this._matrix.tx;
|
|
if (this._canHaveTextContent()) {
|
|
var b = this._getContentBounds(), a = a + b.xMin
|
|
}
|
|
return a / 20;
|
|
}, set:function(a) {
|
|
a = 20 * a | 0;
|
|
this._stopTimelineAnimation();
|
|
if (this._canHaveTextContent()) {
|
|
var b = this._getContentBounds();
|
|
a -= b.xMin;
|
|
}
|
|
a !== this._matrix.tx && (this._matrix.tx = a, this._invertedMatrix.tx = -a, this._invalidatePosition(), this._setDirtyFlags(1048576));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "y", {get:function() {
|
|
var a = this._matrix.ty;
|
|
if (this._canHaveTextContent()) {
|
|
var b = this._getContentBounds(), a = a + b.yMin
|
|
}
|
|
return a / 20;
|
|
}, set:function(a) {
|
|
a = 20 * a | 0;
|
|
this._stopTimelineAnimation();
|
|
if (this._canHaveTextContent()) {
|
|
var b = this._getContentBounds();
|
|
a -= b.yMin;
|
|
}
|
|
a !== this._matrix.ty && (this._matrix.ty = a, this._invertedMatrix.ty = -a, this._invalidatePosition(), this._setDirtyFlags(1048576));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "scaleX", {get:function() {
|
|
return Math.abs(this._scaleX);
|
|
}, set:function(a) {
|
|
a = +a;
|
|
this._stopTimelineAnimation();
|
|
a !== this._scaleX && (this._scaleX = a, this._invalidateMatrix());
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "scaleY", {get:function() {
|
|
return this._scaleY;
|
|
}, set:function(a) {
|
|
a = +a;
|
|
this._stopTimelineAnimation();
|
|
a !== this._scaleY && (this._scaleY = a, this._invalidateMatrix());
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "scaleZ", {get:function() {
|
|
return this._scaleZ;
|
|
}, set:function(a) {
|
|
s("public DisplayObject::set scaleZ");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "rotation", {get:function() {
|
|
return this._rotation;
|
|
}, set:function(a) {
|
|
a = +a;
|
|
this._stopTimelineAnimation();
|
|
a = r._clampRotation(a);
|
|
a !== this._rotation && (this._rotation = a, this._invalidateMatrix());
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "rotationX", {get:function() {
|
|
return this._rotationX;
|
|
}, set:function(a) {
|
|
s("public DisplayObject::set rotationX");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "rotationY", {get:function() {
|
|
return this._rotationY;
|
|
}, set:function(a) {
|
|
s("public DisplayObject::set rotationY");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "rotationZ", {get:function() {
|
|
return this._rotationZ;
|
|
}, set:function(a) {
|
|
s("public DisplayObject::set rotationZ");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "width", {get:function() {
|
|
return this._getTransformedBounds(this._parent, !0).width / 20;
|
|
}, set:function(a) {
|
|
a = 20 * a | 0;
|
|
this._stopTimelineAnimation();
|
|
if (!(0 > a)) {
|
|
var b = this._getContentBounds(!0);
|
|
if (this._canHaveTextContent()) {
|
|
var c = this._getContentBounds();
|
|
this._setFillAndLineBoundsFromWidthAndHeight(a, b.height);
|
|
} else {
|
|
var c = this._getTransformedBounds(this._parent, !0), d = this._rotation / 180 * Math.PI, e = b.getBaseWidth(d);
|
|
e && (this._scaleY = c.height / b.getBaseHeight(d), this._scaleX = a / e, this._invalidateMatrix());
|
|
}
|
|
}
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "height", {get:function() {
|
|
return this._getTransformedBounds(this._parent, !0).height / 20;
|
|
}, set:function(a) {
|
|
a = 20 * a | 0;
|
|
this._stopTimelineAnimation();
|
|
if (!(0 > a)) {
|
|
var b = this._getContentBounds(!0);
|
|
if (this._canHaveTextContent()) {
|
|
var c = this._getContentBounds();
|
|
this._setFillAndLineBoundsFromWidthAndHeight(b.width, a);
|
|
} else {
|
|
var c = this._getTransformedBounds(this._parent, !0), d = this._rotation / 180 * Math.PI, e = b.getBaseHeight(d);
|
|
e && (b = b.getBaseWidth(d), this._scaleY = a / e, this._scaleX = c.width / b, this._invalidateMatrix());
|
|
}
|
|
}
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "mask", {get:function() {
|
|
return this._mask;
|
|
}, set:function(a) {
|
|
this._stopTimelineAnimation();
|
|
if (this._mask !== a && a !== this) {
|
|
a && a._maskedObject && (a._maskedObject.mask = null);
|
|
if (this._mask = a) {
|
|
a._maskedObject = this;
|
|
}
|
|
this._setDirtyFlags(134217728);
|
|
}
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "transform", {get:function() {
|
|
return new f.geom.Transform(this);
|
|
}, set:function(a) {
|
|
this._stopTimelineAnimation();
|
|
a.matrix3D ? this._matrix3D = a.matrix3D : this._setMatrix(a.matrix, !0);
|
|
this._setColorTransform(a.colorTransform);
|
|
}, enumerable:!0, configurable:!0});
|
|
r.prototype.destroy = function() {
|
|
this._setFlags(512);
|
|
};
|
|
Object.defineProperty(r.prototype, "root", {get:function() {
|
|
var a = this;
|
|
do {
|
|
if (a._root === a) {
|
|
return a;
|
|
}
|
|
a = a._parent;
|
|
} while (a);
|
|
return null;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "stage", {get:function() {
|
|
var a = this;
|
|
do {
|
|
if (a._stage === a) {
|
|
return p(f.display.Stage.isType(a)), a;
|
|
}
|
|
a = a._parent;
|
|
} while (a);
|
|
return null;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "name", {get:function() {
|
|
return this._name;
|
|
}, set:function(b) {
|
|
n(b, "name");
|
|
this._name = a(b);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "parent", {get:function() {
|
|
return this._parent;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "visible", {get:function() {
|
|
return this._hasFlags(1);
|
|
}, set:function(a) {
|
|
this._stopTimelineAnimation();
|
|
a = !!a;
|
|
a !== this._hasFlags(1) && (this._toggleFlags(1, a), this._setDirtyFlags(536870912));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "alpha", {get:function() {
|
|
return this._colorTransform.alphaMultiplier;
|
|
}, set:function(a) {
|
|
this._stopTimelineAnimation();
|
|
a = +a;
|
|
a !== this._colorTransform.alphaMultiplier && (this._colorTransform.alphaMultiplier = a, this._colorTransform.convertToFixedPoint(), this._propagateFlagsDown(128), this._setDirtyFlags(67108864));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "blendMode", {get:function() {
|
|
return this._blendMode;
|
|
}, set:function(b) {
|
|
this._stopTimelineAnimation();
|
|
b = a(b);
|
|
b !== this._blendMode && (0 > g.BlendMode.toNumber(b) && c("ArgumentError", k.Errors.InvalidEnumError, "blendMode"), this._blendMode = b, this._setDirtyFlags(536870912));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "scale9Grid", {get:function() {
|
|
return this._scale9Grid ? f.geom.Rectangle.FromBounds(this._scale9Grid) : null;
|
|
}, set:function(a) {
|
|
this._stopTimelineAnimation();
|
|
this._scale9Grid = e.FromRectangle(a);
|
|
this._setDirtyFlags(536870912);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "cacheAsBitmap", {get:function() {
|
|
return 0 < this._filters.length || this._hasFlags(16384);
|
|
}, set:function(a) {
|
|
this._hasFlags(16384) || (this._toggleFlags(16384, !!a), this._setDirtyFlags(536870912));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "filters", {get:function() {
|
|
return this._filters ? this._filters.map(function(a) {
|
|
return a.clone();
|
|
}) : [];
|
|
}, set:function(a) {
|
|
var b = !1;
|
|
d(a) ? (b = 0 < this.filters.length, this._filters.length = 0) : (this._filters = a.map(function(a) {
|
|
p(f.filters.BitmapFilter.isType(a));
|
|
return a.clone();
|
|
}), b = !0);
|
|
b && this._setDirtyFlags(536870912);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "z", {get:function() {
|
|
return this._z;
|
|
}, set:function(a) {
|
|
this._z = +a;
|
|
s("public DisplayObject::set z");
|
|
}, enumerable:!0, configurable:!0});
|
|
r.prototype.getBounds = function(a) {
|
|
return q.Rectangle.FromBounds(this._getTransformedBounds(a || this, !0));
|
|
};
|
|
r.prototype.getRect = function(a) {
|
|
return q.Rectangle.FromBounds(this._getTransformedBounds(a || this, !1));
|
|
};
|
|
r.prototype.globalToLocal = function(a) {
|
|
return this._getInvertedConcatenatedMatrix().transformPointInPlace(a.clone().toTwips()).round().toPixels();
|
|
};
|
|
r.prototype.localToGlobal = function(a) {
|
|
return this._getConcatenatedMatrix().transformPointInPlace(a.clone().toTwips()).round().toPixels();
|
|
};
|
|
r.prototype.visit = function(a, b, c) {
|
|
"undefined" === typeof c && (c = 0);
|
|
var d, e, f = b & 8;
|
|
for (d = [this];0 < d.length;) {
|
|
e = d.pop();
|
|
var l = 0, l = b & 16 && !e._hasAnyFlags(c) ? 2 : a(e);
|
|
if (0 === l) {
|
|
if (e = e._children) {
|
|
for (var l = e.length, n = 0;n < l;n++) {
|
|
d.push(e[f ? n : l - 1 - n]);
|
|
}
|
|
}
|
|
} else {
|
|
if (1 === l) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
Object.defineProperty(r.prototype, "loaderInfo", {get:function() {
|
|
var a = this.root;
|
|
return a ? (p(a._loaderInfo, "No LoaderInfo object found on root."), a._loaderInfo) : null;
|
|
}, enumerable:!0, configurable:!0});
|
|
r.prototype._canHaveGraphics = function() {
|
|
return!1;
|
|
};
|
|
r.prototype._getGraphics = function() {
|
|
return null;
|
|
};
|
|
r.prototype._canHaveTextContent = function() {
|
|
return!1;
|
|
};
|
|
r.prototype._getTextContent = function() {
|
|
return null;
|
|
};
|
|
r.prototype._ensureGraphics = function() {
|
|
p(this._canHaveGraphics());
|
|
if (this._graphics) {
|
|
return this._graphics;
|
|
}
|
|
this._graphics = new f.display.Graphics;
|
|
this._graphics._setParent(this);
|
|
this._invalidateFillAndLineBounds(!0, !0);
|
|
this._setDirtyFlags(4194304);
|
|
return this._graphics;
|
|
};
|
|
r.prototype._setStaticContentFromSymbol = function(a) {
|
|
p(!a.dynamic);
|
|
this._canHaveGraphics() ? (p(a instanceof b.Timeline.ShapeSymbol), this._graphics = a.graphics, this._setDirtyFlags(4194304)) : f.text.StaticText.isType(this) && (p(a instanceof b.Timeline.TextSymbol), this._textContent = a.textContent, this._setDirtyFlags(8388608));
|
|
this._setFillAndLineBoundsFromSymbol(a);
|
|
};
|
|
r.prototype.hitTestObject = function(a) {
|
|
p(a && r.isType(a));
|
|
var b = this._getContentBounds(!1).clone(), c = a._getContentBounds(!1).clone();
|
|
this._getConcatenatedMatrix().transformBounds(b);
|
|
a._getConcatenatedMatrix().transformBounds(c);
|
|
return b.intersects(c);
|
|
};
|
|
r.prototype.hitTestPoint = function(a, b, c) {
|
|
return!!this._containsGlobalPoint(20 * +a | 0, 20 * +b | 0, c ? 2 : 0, null);
|
|
};
|
|
r.prototype._containsPoint = function(a, b, c, d, e, f) {
|
|
a = this._boundsAndMaskContainPoint(a, b, c, d, e);
|
|
if (0 === a || 2 > e) {
|
|
return a;
|
|
}
|
|
(c = this._containsPointDirectly(c, d)) && f && (4 === e || g.InteractiveObject.isType(this) && this._mouseEnabled) && f.push(this);
|
|
return c ? 2 : a;
|
|
};
|
|
r.prototype._containsGlobalPoint = function(a, b, c, d) {
|
|
var e = this._getInvertedConcatenatedMatrix();
|
|
return this._containsPoint(a, b, e.transformX(a, b), e.transformY(a, b), c, d);
|
|
};
|
|
r.prototype._boundsAndMaskContainPoint = function(a, b, c, d, e) {
|
|
return this._hasFlags(1) && this._getContentBounds().contains(c, d) ? 0 !== e && this._mask ? this._mask._containsGlobalPoint(a, b, 1, null) : 1 : 0;
|
|
};
|
|
r.prototype._containsPointDirectly = function(a, b) {
|
|
var c = this._getGraphics();
|
|
return!!c && c._containsPoint(a, b, !0);
|
|
};
|
|
Object.defineProperty(r.prototype, "scrollRect", {get:function() {
|
|
return this._scrollRect ? this._scrollRect.clone() : null;
|
|
}, set:function(a) {
|
|
this._scrollRect = a ? a.clone() : null;
|
|
m("public DisplayObject::set scrollRect");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "opaqueBackground", {get:function() {
|
|
return this._opaqueBackground;
|
|
}, set:function(a) {
|
|
p(null === a || b.isInteger(a));
|
|
this._opaqueBackground = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
r.prototype._getDistance = function(a) {
|
|
for (var b = 0, c = this;c !== a;) {
|
|
b++, c = c._parent;
|
|
}
|
|
return b;
|
|
};
|
|
r.prototype.findNearestCommonAncestor = function(a) {
|
|
if (!a) {
|
|
return null;
|
|
}
|
|
for (var b = this, c = b._getDistance(null), d = a._getDistance(null);c > d;) {
|
|
b = b._parent, c--;
|
|
}
|
|
for (;d > c;) {
|
|
a = a._parent, d--;
|
|
}
|
|
for (;b !== a;) {
|
|
b = b._parent, a = a._parent;
|
|
}
|
|
return b;
|
|
};
|
|
Object.defineProperty(r.prototype, "mouseX", {get:function() {
|
|
return this.globalToLocal(f.ui.Mouse._currentPosition).x;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(r.prototype, "mouseY", {get:function() {
|
|
return this.globalToLocal(f.ui.Mouse._currentPosition).y;
|
|
}, enumerable:!0, configurable:!0});
|
|
r.prototype.debugName = function() {
|
|
return this._id + " [" + this._depth + "]: (" + this._referenceCount + ") " + this;
|
|
};
|
|
r.prototype.debugTrace = function(a, c) {
|
|
"undefined" === typeof a && (a = 1024);
|
|
"undefined" === typeof c && (c = "");
|
|
var d = this, e = new b.IndentingWriter;
|
|
this.visit(function(f) {
|
|
var l = f._getDistance(d);
|
|
if (l > a) {
|
|
return 2;
|
|
}
|
|
l = c + b.StringUtilities.multiple(" ", l);
|
|
e.writeLn(l + f.debugName());
|
|
return 0;
|
|
}, 0);
|
|
};
|
|
r.prototype._addReference = function() {
|
|
this._referenceCount++;
|
|
};
|
|
r.prototype._removeReference = function() {
|
|
this._referenceCount--;
|
|
if (0 === this._referenceCount && this._children) {
|
|
for (var a = this._children, b = 0;b < a.length;b++) {
|
|
a[b]._removeReference();
|
|
}
|
|
}
|
|
};
|
|
Object.defineProperty(r.prototype, "accessibilityProperties", {get:function() {
|
|
return this._accessibilityProperties;
|
|
}, set:function(a) {
|
|
this._accessibilityProperties = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
r._syncID = 0;
|
|
r._instanceID = 1;
|
|
r.classInitializer = function() {
|
|
r.reset();
|
|
};
|
|
r.initializer = function(a) {
|
|
k.counter.count("DisplayObject::initializer");
|
|
this._id = f.display.DisplayObject.getNextSyncID();
|
|
this._displayObjectFlags = 1011875943;
|
|
this._stage = this._root = null;
|
|
this._setInitialName();
|
|
this._mask = this._parent = null;
|
|
this._z = 0;
|
|
this._scaleZ = this._scaleY = this._scaleX = 1;
|
|
this._height = this._width = this._rotationZ = this._rotationY = this._rotationX = this._rotation = 0;
|
|
this._scrollRect = this._opaqueBackground = null;
|
|
this._filters = [];
|
|
this._blendMode = g.BlendMode.NORMAL;
|
|
p(this._blendMode);
|
|
this._accessibilityProperties = this._loaderInfo = this._scale9Grid = null;
|
|
this._fillBounds = new e(0, 0, 0, 0);
|
|
this._lineBounds = new e(0, 0, 0, 0);
|
|
this._clipDepth = -1;
|
|
this._concatenatedMatrix = new q.Matrix;
|
|
this._invertedConcatenatedMatrix = new q.Matrix;
|
|
this._matrix = new q.Matrix;
|
|
this._invertedMatrix = new q.Matrix;
|
|
this._matrix3D = null;
|
|
this._colorTransform = new q.ColorTransform;
|
|
this._concatenatedColorTransform = new q.ColorTransform;
|
|
this._depth = -1;
|
|
this._ratio = 0;
|
|
this._index = -1;
|
|
this._maskedObject = null;
|
|
this._mouseDown = this._mouseOver = !1;
|
|
this._children = this._graphics = this._symbol = null;
|
|
this._referenceCount = 0;
|
|
a && (a.scale9Grid && (this._scale9Grid = a.scale9Grid), this._symbol = a);
|
|
};
|
|
r.classSymbols = null;
|
|
r.instanceSymbols = null;
|
|
r._runScripts = !0;
|
|
r._path = [];
|
|
return r;
|
|
}(f.events.EventDispatcher);
|
|
g.DisplayObject = u;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = b.AVM2.Runtime.asCoerceString, m = b.Debug.assert, d = b.AVM2.Runtime.throwError, a = function(a) {
|
|
function n(a, b, c) {
|
|
"undefined" === typeof a && (a = null);
|
|
"undefined" === typeof b && (b = "auto");
|
|
"undefined" === typeof c && (c = !1);
|
|
g.DisplayObject.instanceConstructorNoInitialize.call(this);
|
|
this._symbol ? this._bitmapData.class.instanceConstructorNoInitialize.call(this._bitmapData) : this.bitmapData = a;
|
|
this._pixelSnapping = s(b);
|
|
this._smoothing = !!c;
|
|
}
|
|
__extends(n, a);
|
|
Object.defineProperty(n.prototype, "pixelSnapping", {get:function() {
|
|
return this._pixelSnapping;
|
|
}, set:function(a) {
|
|
0 > g.PixelSnapping.toNumber(a) && d("ArgumentError", k.Errors.InvalidEnumError, "pixelSnapping");
|
|
this._pixelSnapping = s(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(n.prototype, "smoothing", {get:function() {
|
|
return this._smoothing;
|
|
}, set:function(a) {
|
|
this._smoothing = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(n.prototype, "bitmapData", {get:function() {
|
|
return this._bitmapData;
|
|
}, set:function(a) {
|
|
this._bitmapData !== a && (this._bitmapData && this._bitmapData._removeBitmapReferrer(this), a && a._addBitmapReferrer(this));
|
|
(this._bitmapData = a) && this._setFillAndLineBoundsFromWidthAndHeight(20 * a.width | 0, 20 * a.height | 0);
|
|
this._invalidateParentFillAndLineBounds(!0, !0);
|
|
this._setDirtyFlags(16777216);
|
|
}, enumerable:!0, configurable:!0});
|
|
n.prototype._getContentBounds = function(a) {
|
|
return this._bitmapData ? this._bitmapData._getContentBounds() : new b.Bounds(0, 0, 0, 0);
|
|
};
|
|
n.prototype._containsPointDirectly = function(a, b) {
|
|
m(this._getContentBounds().contains(a, b));
|
|
return!0;
|
|
};
|
|
n.classInitializer = null;
|
|
n.initializer = function(a) {
|
|
this._smoothing = this._pixelSnapping = this._bitmapData = null;
|
|
if (a) {
|
|
var b = a.symbolClass;
|
|
b.isSubtypeOf(f.display.Bitmap) && (b = f.display.BitmapData);
|
|
this._bitmapData = b.initializeFrom(a);
|
|
this._setFillAndLineBoundsFromWidthAndHeight(20 * a.width | 0, 20 * a.height | 0);
|
|
}
|
|
};
|
|
n.classSymbols = null;
|
|
n.instanceSymbols = null;
|
|
return n;
|
|
}(f.display.DisplayObject);
|
|
g.Bitmap = a;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(g) {
|
|
var k = function(b) {
|
|
function d() {
|
|
g.DisplayObject.instanceConstructorNoInitialize.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.prototype._canHaveGraphics = function() {
|
|
return!0;
|
|
};
|
|
d.prototype._getGraphics = function() {
|
|
return this._graphics;
|
|
};
|
|
Object.defineProperty(d.prototype, "graphics", {get:function() {
|
|
return this._ensureGraphics();
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype._containsPointDirectly = function(a, b) {
|
|
var d = this._getGraphics();
|
|
return!!d && d._containsPoint(a, b, !0);
|
|
};
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.classInitializer = null;
|
|
d.initializer = function(a) {
|
|
this._graphics = null;
|
|
a && this._setStaticContentFromSymbol(a);
|
|
};
|
|
return d;
|
|
}(b.display.DisplayObject);
|
|
g.Shape = k;
|
|
})(b.display || (b.display = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.Debug.somewhatImplemented, d = f.display.DisplayObject, a = f.events, c = function(b) {
|
|
function c() {
|
|
d.instanceConstructorNoInitialize.call(this);
|
|
}
|
|
__extends(c, b);
|
|
Object.defineProperty(c.prototype, "tabEnabled", {get:function() {
|
|
return this._tabEnabled;
|
|
}, set:function(b) {
|
|
b = !!b;
|
|
var c = this._tabEnabled;
|
|
this._tabEnabled = b;
|
|
c !== b && this.dispatchEvent(a.Event.getInstance(a.Event.TAB_ENABLED_CHANGE, !0));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "tabIndex", {get:function() {
|
|
return this._tabIndex;
|
|
}, set:function(b) {
|
|
b |= 0;
|
|
var c = this._tabIndex;
|
|
this._tabIndex = b;
|
|
c !== b && this.dispatchEvent(a.Event.getInstance(a.Event.TAB_INDEX_CHANGE, !0));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "focusRect", {get:function() {
|
|
return this._focusRect;
|
|
}, set:function(a) {
|
|
m("public flash.display.InteractiveObject::set focusRect");
|
|
this._focusRect = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "mouseEnabled", {get:function() {
|
|
return this._mouseEnabled;
|
|
}, set:function(a) {
|
|
this._mouseEnabled = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "doubleClickEnabled", {get:function() {
|
|
return this._doubleClickEnabled;
|
|
}, set:function(a) {
|
|
this._doubleClickEnabled = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "accessibilityImplementation", {get:function() {
|
|
return this._accessibilityImplementation;
|
|
}, set:function(a) {
|
|
k("public flash.display.InteractiveObject::set accessibilityImplementation");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "softKeyboardInputAreaOfInterest", {get:function() {
|
|
return this._softKeyboardInputAreaOfInterest;
|
|
}, set:function(a) {
|
|
k("public flash.display.InteractiveObject::set softKeyboardInputAreaOfInterest");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "needsSoftKeyboard", {get:function() {
|
|
return this._needsSoftKeyboard;
|
|
}, set:function(a) {
|
|
k("public flash.display.InteractiveObject::set needsSoftKeyboard");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "contextMenu", {get:function() {
|
|
return this._contextMenu;
|
|
}, set:function(a) {
|
|
m("public flash.display.InteractiveObject::set contextMenu");
|
|
this._contextMenu = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.requestSoftKeyboard = function() {
|
|
k("public flash.display.InteractiveObject::requestSoftKeyboard");
|
|
};
|
|
c.classInitializer = null;
|
|
c.initializer = function() {
|
|
this._tabEnabled = !1;
|
|
this._tabIndex = -1;
|
|
this._focusRect = null;
|
|
this._mouseEnabled = !0;
|
|
this._doubleClickEnabled = !1;
|
|
this._softKeyboardInputAreaOfInterest = this._accessibilityImplementation = null;
|
|
this._needsSoftKeyboard = !1;
|
|
this._contextMenu = null;
|
|
};
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
return c;
|
|
}(f.display.DisplayObject);
|
|
g.InteractiveObject = c;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.Debug.assert, d = function(a) {
|
|
function b(a, c, d, f) {
|
|
k("Dummy Constructor: public flash.display.SimpleButton");
|
|
}
|
|
__extends(b, a);
|
|
b.prototype._initFrame = function(a) {
|
|
a && this._updateButton();
|
|
};
|
|
b.prototype._constructFrame = function() {
|
|
};
|
|
Object.defineProperty(b.prototype, "useHandCursor", {get:function() {
|
|
return this._useHandCursor;
|
|
}, set:function(a) {
|
|
this._useHandCursor = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "enabled", {get:function() {
|
|
return this._enabled;
|
|
}, set:function(a) {
|
|
this._enabled = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "trackAsMenu", {get:function() {
|
|
return this._trackAsMenu;
|
|
}, set:function(a) {
|
|
k("public flash.display.SimpleButton::set trackAsMenu");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "upState", {get:function() {
|
|
return this._upState;
|
|
}, set:function(a) {
|
|
var b = this._upState;
|
|
a._parent && a._parent.removeChild(a);
|
|
this._upState = a;
|
|
this._currentState === b && this._updateButton();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "overState", {get:function() {
|
|
return this._overState;
|
|
}, set:function(a) {
|
|
var b = this._overState;
|
|
a._parent && a._parent.removeChild(a);
|
|
this._overState = a;
|
|
this._currentState === b && this._updateButton();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "downState", {get:function() {
|
|
return this._downState;
|
|
}, set:function(a) {
|
|
var b = this._downState;
|
|
a._parent && a._parent.removeChild(a);
|
|
this._downState = a;
|
|
this._currentState === b && this._updateButton();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "hitTestState", {get:function() {
|
|
return this._hitTestState;
|
|
}, set:function(a) {
|
|
this._hitTestState = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "soundTransform", {get:function() {
|
|
k("public flash.display.SimpleButton::get soundTransform");
|
|
}, set:function(a) {
|
|
k("public flash.display.SimpleButton::set soundTransform");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype._containsPoint = function(a, b, c, d, f, g) {
|
|
var k = this.hitTestState;
|
|
if (!k) {
|
|
return 0;
|
|
}
|
|
if (!this._symbol) {
|
|
var r = k._getInvertedMatrix(), h = r.transformX(c, d);
|
|
d = r.transformY(c, d);
|
|
c = h;
|
|
}
|
|
a = k._containsPoint(a, b, c, d, f, g);
|
|
0 !== a && 3 === f && g && this._mouseEnabled && (g[0] = this, m(1 === g.length));
|
|
return a;
|
|
};
|
|
b.prototype._getChildBounds = function(a, b) {
|
|
var c = this.hitTestState;
|
|
if (c) {
|
|
var d = c._getContentBounds(b).clone();
|
|
this._getConcatenatedMatrix().transformBounds(d);
|
|
this._symbol || c._getMatrix().transformBounds(a);
|
|
a.unionInPlace(d);
|
|
}
|
|
};
|
|
b.prototype._updateButton = function() {
|
|
var a;
|
|
a = this._mouseOver ? this._mouseDown ? this._downState : this._overState : this._upState;
|
|
a !== this._currentState && ((this._currentState = a) ? this._children[0] = a : this._children.length = 0, this._setDirtyFlags(2097152), this._invalidateFillAndLineBounds(!0, !0));
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = function(a) {
|
|
g.DisplayObject._advancableInstances.push(this);
|
|
this._enabled = this._useHandCursor = !0;
|
|
this._trackAsMenu = !1;
|
|
this._currentState = this._hitTestState = this._downState = this._overState = this._upState = null;
|
|
this._children = [];
|
|
if (this._symbol = a) {
|
|
a.upState && (this._upState = g.DisplayObject.createAnimatedDisplayObject(a.upState, !0)), a.overState && (this._overState = g.DisplayObject.createAnimatedDisplayObject(a.overState, !0)), a.downState && (this._downState = g.DisplayObject.createAnimatedDisplayObject(a.downState, !0)), a.hitTestState && (this._hitTestState = g.DisplayObject.createAnimatedDisplayObject(a.hitTestState, !0));
|
|
}
|
|
};
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(f.display.InteractiveObject);
|
|
g.SimpleButton = d;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = b.Debug.assert, m = b.Debug.notImplemented, d = b.AVM2.Runtime.asCoerceString, a = b.AVM2.Runtime.throwError, c = b.AVM2.Runtime.checkParameterType, n = b.NumberUtilities.clamp, p = b.AVM2.ABC.Multiname, e = f.events, q = function(b) {
|
|
function q() {
|
|
g.InteractiveObject.instanceConstructorNoInitialize.call(this);
|
|
this._setDirtyFlags(2097152);
|
|
}
|
|
__extends(q, b);
|
|
q.prototype._invalidateChildren = function() {
|
|
this._setDirtyFlags(2097152);
|
|
this._invalidateFillAndLineBounds(!0, !0);
|
|
};
|
|
q.prototype._propagateFlagsDown = function(a) {
|
|
if (!this._hasFlags(a)) {
|
|
this._setFlags(a);
|
|
for (var b = this._children, c = 0;c < b.length;c++) {
|
|
b[c]._propagateFlagsDown(a);
|
|
}
|
|
}
|
|
};
|
|
q.prototype._constructChildren = function() {
|
|
k.counter.count("DisplayObjectContainer::_constructChildren");
|
|
for (var a = this._children, b = 0;b < a.length;b++) {
|
|
var c = a[b];
|
|
c._hasFlags(256) || (c.class.instanceConstructorNoInitialize.call(c), c._removeReference(), c._name && (this[p.getPublicQualifiedName(c._name)] = c), c._setFlags(256), c._symbol && c._symbol.isAVM1Object && (c.dispatchEvent(e.Event.getInstance(e.Event.AVM1_INIT)), c.dispatchEvent(e.Event.getInstance(e.Event.AVM1_CONSTRUCT))), c.dispatchEvent(e.Event.getInstance(e.Event.ADDED, !0)), c.stage && c.dispatchEvent(e.Event.getInstance(e.Event.ADDED_TO_STAGE)));
|
|
}
|
|
};
|
|
q.prototype._enqueueFrameScripts = function() {
|
|
if (this._hasFlags(8192)) {
|
|
this._removeFlags(8192);
|
|
for (var a = this._children, b = 0;b < a.length;b++) {
|
|
var c = a[b];
|
|
(q.isType(c) || g.AVM1Movie.isType(c)) && c._enqueueFrameScripts();
|
|
}
|
|
}
|
|
};
|
|
Object.defineProperty(q.prototype, "numChildren", {get:function() {
|
|
return this._children.length;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(q.prototype, "textSnapshot", {get:function() {
|
|
m("public DisplayObjectContainer::get textSnapshot");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(q.prototype, "tabChildren", {get:function() {
|
|
return this._tabChildren;
|
|
}, set:function(a) {
|
|
a = !!a;
|
|
var b = this._tabChildren;
|
|
this._tabChildren = a;
|
|
b !== a && this.dispatchEvent(e.Event.getInstance(e.Event.TAB_CHILDREN_CHANGE, !0));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(q.prototype, "mouseChildren", {get:function() {
|
|
return this._mouseChildren;
|
|
}, set:function(a) {
|
|
this._mouseChildren = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
q.prototype.addChild = function(a) {
|
|
c(a, "child", f.display.DisplayObject);
|
|
return this.addChildAt(a, this._children.length);
|
|
};
|
|
q.prototype.addChildAt = function(b, d) {
|
|
c(b, "child", f.display.DisplayObject);
|
|
k.counter.count("DisplayObjectContainer::addChildAt");
|
|
d |= 0;
|
|
s(b._hasFlags(256), "Child is not fully constructed.");
|
|
b === this && a("ArgumentError", k.Errors.CantAddSelfError);
|
|
q.isType(b) && b.contains(this) && a("ArgumentError", k.Errors.CantAddParentError);
|
|
var h = this._children;
|
|
(0 > d || d > h.length) && a("RangeError", k.Errors.ParamRangeError);
|
|
if (b._parent === this) {
|
|
return this.setChildIndex(b, n(d, 0, h.length - 1)), b;
|
|
}
|
|
b._parent && (b._parent.removeChild(b), d = n(d, 0, h.length));
|
|
for (var l = h.length - 1;l >= d;l--) {
|
|
h[l]._index++;
|
|
}
|
|
h.splice(d, 0, b);
|
|
b._setParent(this, -1);
|
|
b._index = d;
|
|
b._invalidatePosition();
|
|
b.dispatchEvent(e.Event.getInstance(e.Event.ADDED, !0));
|
|
b.stage && b._propagateEvent(e.Event.getInstance(e.Event.ADDED_TO_STAGE));
|
|
this._invalidateChildren();
|
|
b._addReference();
|
|
return b;
|
|
};
|
|
q.prototype.addTimelineObjectAtDepth = function(a, b) {
|
|
k.counter.count("DisplayObjectContainer::addTimelineObjectAtDepth");
|
|
b |= 0;
|
|
for (var c = this._children, d = c.length - 1, e = d + 1, f = d;0 <= f;f--) {
|
|
var l = c[f];
|
|
if (l._depth) {
|
|
if (l._depth < b) {
|
|
e = f + 1;
|
|
break;
|
|
}
|
|
e = f;
|
|
}
|
|
}
|
|
if (e > d) {
|
|
c.push(a), a._index = e;
|
|
} else {
|
|
for (c.splice(e, 0, a), f = e;f < c.length;f++) {
|
|
c[f]._index = f;
|
|
}
|
|
}
|
|
a._setParent(this, b);
|
|
a._invalidatePosition();
|
|
this._invalidateChildren();
|
|
};
|
|
q.prototype.removeChild = function(a) {
|
|
c(a, "child", f.display.DisplayObject);
|
|
return this.removeChildAt(this.getChildIndex(a));
|
|
};
|
|
q.prototype.removeChildAt = function(b) {
|
|
k.counter.count("DisplayObjectContainer::removeChildAt");
|
|
b |= 0;
|
|
var c = this._children;
|
|
(0 > b || b >= c.length) && a("RangeError", k.Errors.ParamRangeError);
|
|
var d = c[b];
|
|
d._hasFlags(256) && (d.dispatchEvent(e.Event.getInstance(e.Event.REMOVED, !0)), this.stage && d._propagateEvent(e.Event.getInstance(e.Event.REMOVED_FROM_STAGE)), b = this.getChildIndex(d));
|
|
c.splice(b, 1);
|
|
for (var f = c.length - 1;f >= b;f--) {
|
|
c[f]._index--;
|
|
}
|
|
d._setParent(null, -1);
|
|
d._index = -1;
|
|
d._invalidatePosition();
|
|
this._invalidateChildren();
|
|
return d;
|
|
};
|
|
q.prototype.getChildIndex = function(b) {
|
|
c(b, "child", f.display.DisplayObject);
|
|
b._parent !== this && a("ArgumentError", k.Errors.NotAChildError);
|
|
return b._index;
|
|
};
|
|
q.prototype.setChildIndex = function(b, d) {
|
|
d |= 0;
|
|
c(b, "child", f.display.DisplayObject);
|
|
var h = this._children;
|
|
(0 > d || d >= h.length) && a("RangeError", k.Errors.ParamRangeError);
|
|
b._parent !== this && a("ArgumentError", k.Errors.NotAChildError);
|
|
b._depth = -1;
|
|
var e = this.getChildIndex(b);
|
|
if (1 !== h.length && e !== d) {
|
|
if (d === e + 1 || d === e - 1) {
|
|
this._swapChildrenAt(e, d);
|
|
} else {
|
|
for (h.splice(e, 1), h.splice(d, 0, b), e = e < d ? e : d;e < h.length;) {
|
|
h[e]._index = e++;
|
|
}
|
|
}
|
|
this._invalidateChildren();
|
|
}
|
|
};
|
|
q.prototype.getChildAt = function(b) {
|
|
b |= 0;
|
|
var c = this._children;
|
|
(0 > b || b >= c.length) && a("RangeError", k.Errors.ParamRangeError);
|
|
b = c[b];
|
|
if (!b._hasFlags(256)) {
|
|
return null;
|
|
}
|
|
b._addReference();
|
|
return b;
|
|
};
|
|
q.prototype.getTimelineObjectAtDepth = function(a) {
|
|
a |= 0;
|
|
for (var b = this._children, c = 0;c < b.length;c++) {
|
|
var d = b[c];
|
|
if (d._depth > a) {
|
|
break;
|
|
}
|
|
if (d._depth === a) {
|
|
return d;
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
q.prototype.getClipDepthIndex = function(a) {
|
|
a |= 0;
|
|
for (var b = this._children, c = this._children.length - 1, d = !0, e = c;0 <= e;e--) {
|
|
var f = b[e];
|
|
if (!(0 > f._depth)) {
|
|
if (f._depth <= a) {
|
|
return d ? c : e;
|
|
}
|
|
d = !1;
|
|
}
|
|
}
|
|
return 0;
|
|
};
|
|
q.prototype.getChildByName = function(a) {
|
|
a = d(a);
|
|
for (var b = this._children, c = 0;c < b.length;c++) {
|
|
var e = b[c];
|
|
if (e._hasFlags(256) && e.name === a) {
|
|
return e._addReference(), e;
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
q.prototype._containsPoint = function(a, b, c, d, e, f) {
|
|
var l = Math.min(e, 1), n = this._boundsAndMaskContainPoint(a, b, c, d, l);
|
|
if (0 === n || 2 > e) {
|
|
return n;
|
|
}
|
|
for (var l = !1, m = this._getUnclippedChildren(e, a, b), p = m ? m.length : 0;p--;) {
|
|
if (n = m[p]._containsGlobalPoint(a, b, e, f), 2 === n) {
|
|
if (3 > e) {
|
|
return n;
|
|
}
|
|
l = !0;
|
|
if (4 !== e) {
|
|
s(3 === e);
|
|
s(1 >= f.length);
|
|
if (!this._mouseEnabled) {
|
|
return f.length = 0, n;
|
|
}
|
|
this._mouseChildren || (f[0] = this);
|
|
if (0 !== f.length) {
|
|
return s(g.InteractiveObject.isType(f[0])), 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (l && 4 !== e) {
|
|
return 3 === e && 0 === f.length && (f[0] = this), 2;
|
|
}
|
|
(a = this._containsPointDirectly(c, d)) && (4 === e || f && this._mouseEnabled) && f.push(this);
|
|
return l || a ? 2 : 0;
|
|
};
|
|
q.prototype._getUnclippedChildren = function(a, b, c) {
|
|
var d = this._children;
|
|
if (!d) {
|
|
return null;
|
|
}
|
|
for (var e, f = 0;d && f < d.length;f++) {
|
|
var l = d[f];
|
|
-1 !== l._clipDepth ? (e || (e = []), 2 !== a && (s(3 <= a), l._containsGlobalPoint(b, c, a, null) || (f = this.getClipDepthIndex(l._clipDepth)))) : e && e.push(l);
|
|
}
|
|
return e || d;
|
|
};
|
|
q.prototype._getChildBounds = function(a, b) {
|
|
for (var c = this._children, d = 0;d < c.length;d++) {
|
|
a.unionInPlace(c[d]._getTransformedBounds(this, b));
|
|
}
|
|
};
|
|
q.prototype.getObjectsUnderPoint = function(a) {
|
|
k.counter.count("DisplayObjectContainer::getObjectsUnderPoint");
|
|
var b = [];
|
|
this._containsGlobalPoint(20 * a.x | 0, 20 * a.y | 0, 4, b);
|
|
return b.reverse();
|
|
};
|
|
q.prototype.areInaccessibleObjectsUnderPoint = function(a) {
|
|
m("public DisplayObjectContainer::areInaccessibleObjectsUnderPoint");
|
|
};
|
|
q.prototype.contains = function(a) {
|
|
c(a, "child", f.display.DisplayObject);
|
|
return this._isAncestor(a);
|
|
};
|
|
q.prototype.swapChildrenAt = function(b, c) {
|
|
b |= 0;
|
|
c |= 0;
|
|
var d = this._children;
|
|
(0 > b || b >= d.length || 0 > c || c >= d.length) && a("RangeError", k.Errors.ParamRangeError);
|
|
b !== c && (this._swapChildrenAt(b, c), this._invalidateChildren());
|
|
};
|
|
q.prototype._swapChildrenAt = function(a, b) {
|
|
var c = this._children, d = c[a], e = c[b];
|
|
c[b] = d;
|
|
d._depth = -1;
|
|
d._index = b;
|
|
c[a] = e;
|
|
e._depth = -1;
|
|
e._index = a;
|
|
};
|
|
q.prototype.swapChildren = function(a, b) {
|
|
c(a, "child", f.display.DisplayObject);
|
|
c(b, "child", f.display.DisplayObject);
|
|
this.swapChildrenAt(this.getChildIndex(a), this.getChildIndex(b));
|
|
};
|
|
q.prototype.removeChildren = function(b, c) {
|
|
"undefined" === typeof b && (b = 0);
|
|
"undefined" === typeof c && (c = 2147483647);
|
|
b |= 0;
|
|
c |= 0;
|
|
(0 > b || 0 > c || c < b || c >= this._children.length) && a("RangeError", k.Errors.ParamRangeError);
|
|
var d = c - b + 1;
|
|
if (0 < d) {
|
|
for (;d--;) {
|
|
this.removeChildAt(b);
|
|
}
|
|
}
|
|
};
|
|
q.bindings = null;
|
|
q.classSymbols = null;
|
|
q.classInitializer = null;
|
|
q.initializer = function() {
|
|
this._mouseChildren = this._tabChildren = !0;
|
|
this._children = [];
|
|
};
|
|
return q;
|
|
}(f.display.InteractiveObject);
|
|
g.DisplayObjectContainer = q;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.JointStyle");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.ROUND;
|
|
case 1:
|
|
return a.BEVEL;
|
|
case 2:
|
|
return a.MITER;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.ROUND:
|
|
return 0;
|
|
case a.BEVEL:
|
|
return 1;
|
|
case a.MITER:
|
|
return 2;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.ROUND = "round";
|
|
a.BEVEL = "bevel";
|
|
a.MITER = "miter";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.JointStyle = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.CapsStyle");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.ROUND;
|
|
case 1:
|
|
return a.NONE;
|
|
case 2:
|
|
return a.SQUARE;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.ROUND:
|
|
return 0;
|
|
case a.NONE:
|
|
return 1;
|
|
case a.SQUARE:
|
|
return 2;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.ROUND = "round";
|
|
a.NONE = "none";
|
|
a.SQUARE = "square";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.CapsStyle = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.LineScaleMode");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.NONE;
|
|
case 1:
|
|
return a.NORMAL;
|
|
case 2:
|
|
return a.VERTICAL;
|
|
case 3:
|
|
return a.HORIZONTAL;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.NONE:
|
|
return 0;
|
|
case a.NORMAL:
|
|
return 1;
|
|
case a.VERTICAL:
|
|
return 2;
|
|
case a.HORIZONTAL:
|
|
return 3;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.NORMAL = "normal";
|
|
a.VERTICAL = "vertical";
|
|
a.HORIZONTAL = "horizontal";
|
|
a.NONE = "none";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.LineScaleMode = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.GradientType");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 16:
|
|
return a.LINEAR;
|
|
case 18:
|
|
return a.RADIAL;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.LINEAR:
|
|
return 16;
|
|
case a.RADIAL:
|
|
return 18;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.LINEAR = "linear";
|
|
a.RADIAL = "radial";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GradientType = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.SpreadMethod");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.PAD;
|
|
case 1:
|
|
return a.REFLECT;
|
|
case 2:
|
|
return a.REPEAT;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.PAD:
|
|
return 0;
|
|
case a.REFLECT:
|
|
return 1;
|
|
case a.REPEAT:
|
|
return 2;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.PAD = "pad";
|
|
a.REFLECT = "reflect";
|
|
a.REPEAT = "repeat";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.SpreadMethod = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.InterpolationMethod");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.RGB;
|
|
case 1:
|
|
return a.LINEAR_RGB;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.RGB:
|
|
return 0;
|
|
case a.LINEAR_RGB:
|
|
return 1;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.RGB = "rgb";
|
|
a.LINEAR_RGB = "linearRGB";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.InterpolationMethod = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d(a, b, d, f) {
|
|
"undefined" === typeof a && (a = null);
|
|
"undefined" === typeof b && (b = null);
|
|
"undefined" === typeof d && (d = !0);
|
|
"undefined" === typeof f && (f = !1);
|
|
this.bitmapData = a;
|
|
this.matrix = b;
|
|
this.repeat = !!d;
|
|
this.smooth = !!f;
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(b.ASNative);
|
|
f.GraphicsBitmapFill = k;
|
|
})(f.display || (f.display = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.GraphicsEndFill");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GraphicsEndFill = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.AVM2.Runtime.asCoerceString, m = function(b) {
|
|
function a(a, b, d, e, f, l, g, m) {
|
|
"undefined" === typeof a && (a = "linear");
|
|
"undefined" === typeof b && (b = null);
|
|
"undefined" === typeof d && (d = null);
|
|
"undefined" === typeof e && (e = null);
|
|
"undefined" === typeof f && (f = null);
|
|
"undefined" === typeof l && (l = "pad");
|
|
"undefined" === typeof g && (g = "rgb");
|
|
"undefined" === typeof m && (m = 0);
|
|
this.type = k(a);
|
|
this.colors = b;
|
|
this.alphas = d;
|
|
this.ratios = e;
|
|
this.matrix = f;
|
|
this.spreadMethod = l;
|
|
this.interpolationMethod = k(g);
|
|
this.focalPointRatio = +m;
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GraphicsGradientFill = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.AVM2.Runtime.asCoerceString, m = function(b) {
|
|
function a(a, b, d) {
|
|
"undefined" === typeof a && (a = null);
|
|
"undefined" === typeof b && (b = null);
|
|
"undefined" === typeof d && (d = "evenOdd");
|
|
this.commands = a;
|
|
this.data = b;
|
|
this.winding = k(d);
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GraphicsPath = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.GraphicsPathCommand");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.NO_OP = void 0;
|
|
a.MOVE_TO = 1;
|
|
a.LINE_TO = 2;
|
|
a.CURVE_TO = 3;
|
|
a.WIDE_MOVE_TO = 4;
|
|
a.WIDE_LINE_TO = 5;
|
|
a.CUBIC_CURVE_TO = 6;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GraphicsPathCommand = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.GraphicsPathWinding");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.EVEN_ODD = "evenOdd";
|
|
a.NON_ZERO = "nonZero";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GraphicsPathWinding = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d(a, b) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = 1);
|
|
this.color = a >>> 0;
|
|
this.alpha = +b;
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(b.ASNative);
|
|
f.GraphicsSolidFill = k;
|
|
})(f.display || (f.display = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.AVM2.Runtime.asCoerceString, m = function(b) {
|
|
function a(a, b, d, e, f, l, g) {
|
|
"undefined" === typeof a && (a = NaN);
|
|
"undefined" === typeof b && (b = !1);
|
|
"undefined" === typeof d && (d = "normal");
|
|
"undefined" === typeof e && (e = "none");
|
|
"undefined" === typeof f && (f = "round");
|
|
"undefined" === typeof l && (l = 3);
|
|
"undefined" === typeof g && (g = null);
|
|
this.thickness = +a;
|
|
this.pixelHinting = !!b;
|
|
this.scaleMode = k(d);
|
|
this.caps = k(e);
|
|
this.joints = k(f);
|
|
this.miterLimit = +l;
|
|
this.fill = g;
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GraphicsStroke = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b(a, c, d, f) {
|
|
"undefined" === typeof f && (f = "none");
|
|
m(f);
|
|
k("Dummy Constructor: public flash.display.GraphicsTrianglePath");
|
|
}
|
|
__extends(b, a);
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.GraphicsTrianglePath = d;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Shumway$$inline_555 = Shumway || (Shumway = {}), AVM2$$inline_556 = Shumway$$inline_555.AVM2 || (Shumway$$inline_555.AVM2 = {}), AS$$inline_557 = AVM2$$inline_556.AS || (AVM2$$inline_556.AS = {}), flash$$inline_558 = AS$$inline_557.flash || (AS$$inline_557.flash = {}), display$$inline_559 = flash$$inline_558.display || (flash$$inline_558.display = {}), display$$inline_560 = flash$$inline_558.display, flash$$inline_561 = AS$$inline_557.flash, AS$$inline_562 = AVM2$$inline_556.AS, AVM2$$inline_563 =
|
|
Shumway$$inline_555.AVM2, Shumway$$inline_565 = Shumway || (Shumway = {}), AVM2$$inline_566 = Shumway$$inline_565.AVM2 || (Shumway$$inline_565.AVM2 = {}), AS$$inline_567 = AVM2$$inline_566.AS || (AVM2$$inline_566.AS = {}), flash$$inline_568 = AS$$inline_567.flash || (AS$$inline_567.flash = {}), display$$inline_569 = flash$$inline_568.display || (flash$$inline_568.display = {}), display$$inline_570 = flash$$inline_568.display, flash$$inline_571 = AS$$inline_567.flash, AS$$inline_572 = AVM2$$inline_566.AS,
|
|
AVM2$$inline_573 = Shumway$$inline_565.AVM2, Shumway$$inline_575 = Shumway || (Shumway = {}), AVM2$$inline_576 = Shumway$$inline_575.AVM2 || (Shumway$$inline_575.AVM2 = {}), AS$$inline_577 = AVM2$$inline_576.AS || (AVM2$$inline_576.AS = {}), flash$$inline_578 = AS$$inline_577.flash || (AS$$inline_577.flash = {}), display$$inline_579 = flash$$inline_578.display || (flash$$inline_578.display = {}), display$$inline_580 = flash$$inline_578.display, flash$$inline_581 = AS$$inline_577.flash, AS$$inline_582 =
|
|
AVM2$$inline_576.AS, AVM2$$inline_583 = Shumway$$inline_575.AVM2, Shumway$$inline_585 = Shumway || (Shumway = {}), AVM2$$inline_586 = Shumway$$inline_585.AVM2 || (Shumway$$inline_585.AVM2 = {}), AS$$inline_587 = AVM2$$inline_586.AS || (AVM2$$inline_586.AS = {}), flash$$inline_588 = AS$$inline_587.flash || (AS$$inline_587.flash = {}), display$$inline_589 = flash$$inline_588.display || (flash$$inline_588.display = {}), display$$inline_590 = flash$$inline_588.display, flash$$inline_591 = AS$$inline_587.flash,
|
|
AS$$inline_592 = AVM2$$inline_586.AS, AVM2$$inline_593 = Shumway$$inline_585.AVM2, Shumway$$inline_595 = Shumway || (Shumway = {}), AVM2$$inline_596 = Shumway$$inline_595.AVM2 || (Shumway$$inline_595.AVM2 = {}), AS$$inline_597 = AVM2$$inline_596.AS || (AVM2$$inline_596.AS = {}), flash$$inline_598 = AS$$inline_597.flash || (AS$$inline_597.flash = {}), display$$inline_599 = flash$$inline_598.display || (flash$$inline_598.display = {}), display$$inline_600 = flash$$inline_598.display, flash$$inline_601 =
|
|
AS$$inline_597.flash, AS$$inline_602 = AVM2$$inline_596.AS, AVM2$$inline_603 = Shumway$$inline_595.AVM2;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(t) {
|
|
function s(a, b, c, d) {
|
|
a = c - a;
|
|
b = d - b;
|
|
return a * a + b * b;
|
|
}
|
|
function m(a, b, c, d) {
|
|
var h = 1 - d;
|
|
return a * h * h + 2 * b * h * d + c * d * d;
|
|
}
|
|
function d(a, b, c) {
|
|
var d = (a - b) / (a - 2 * b + c);
|
|
return 0 > d ? a : 1 < d ? c : m(a, b, c, d);
|
|
}
|
|
function a(a, b, c, d, h) {
|
|
var e = h * h, f = 1 - h, l = f * f;
|
|
return a * f * l + 3 * b * h * l + 3 * c * f * e + d * h * e;
|
|
}
|
|
function c(b, c, d, h) {
|
|
var e = c - b, f;
|
|
f = 2 * (d - c);
|
|
var l = h - d;
|
|
e + l === f && (l *= 1.0001);
|
|
var g = 2 * e - f, n = f - 2 * e, n = Math.sqrt(n * n - 4 * e * (e - f + l));
|
|
f = 2 * (e - f + l);
|
|
e = (g + n) / f;
|
|
g = (g - n) / f;
|
|
n = [];
|
|
0 <= e && 1 >= e && n.push(Math.round(a(b, c, d, h, e)));
|
|
0 <= g && 1 >= g && n.push(Math.round(a(b, c, d, h, g)));
|
|
return n;
|
|
}
|
|
function n(a, b, c, d, h, e, f, l, g) {
|
|
function n(a) {
|
|
return a * (q + a * (u + a * w)) + b - g;
|
|
}
|
|
function m(b) {
|
|
0 > b ? b = 0 : 1 < b && (b = 1);
|
|
return a + b * (r + b * (s + b * x));
|
|
}
|
|
function k(a, b, c, d) {
|
|
if (!(Math.abs(c - b) <= d)) {
|
|
var h = .5 * (b + c);
|
|
0 >= a(b) * a(c) ? (t = b, y = c) : (k(a, b, h, d), k(a, h, c, d));
|
|
}
|
|
}
|
|
var r = 3 * (c - a), q = 3 * (d - b), s = 3 * (h - c) - r, u = 3 * (e - d) - q, x = f - a - r - s, w = l - b - q - u, t = 0, y = 1;
|
|
k(n, 0, 1, .05);
|
|
e = p(t, y, n);
|
|
if (1E-5 < Math.abs(n(e))) {
|
|
return[];
|
|
}
|
|
c = [];
|
|
1 >= e && c.push(m(e));
|
|
d = w;
|
|
h = e * d + u;
|
|
f = h * h - 4 * d * (e * h + q);
|
|
if (0 > f) {
|
|
return c;
|
|
}
|
|
f = Math.sqrt(f);
|
|
d = 1 / (d + d);
|
|
e = (f - h) * d;
|
|
d *= -h - f;
|
|
0 <= e && 1 >= e && c.push(m(e));
|
|
0 <= d && 1 >= d && c.push(m(d));
|
|
return c;
|
|
}
|
|
function p(a, b, c) {
|
|
var d, h, e, f, l, g, n = a;
|
|
h = c(a);
|
|
if (0 === h) {
|
|
return a;
|
|
}
|
|
f = c(b);
|
|
if (0 === f) {
|
|
return b;
|
|
}
|
|
if (0 < f * h) {
|
|
return a;
|
|
}
|
|
for (var m = 0, p = 0;50 > p;++p) {
|
|
m++;
|
|
d = .5 * (b + a);
|
|
e = c(d);
|
|
if (0 === e) {
|
|
break;
|
|
}
|
|
if (1E-6 > Math.abs(d - a)) {
|
|
break;
|
|
}
|
|
0 < e * h && (a = b, b = h, h = f, f = b);
|
|
b = e - h;
|
|
g = f - e;
|
|
l = f - h;
|
|
if (f * l < 2 * e * b) {
|
|
b = d, f = e;
|
|
} else {
|
|
f = (d - a) / b;
|
|
b = (b - g) / (g * l);
|
|
b = a - f * h * (1 - b * e);
|
|
f = c(b);
|
|
if (0 === f || 1E-6 > Math.abs(b - n)) {
|
|
return b;
|
|
}
|
|
n = b;
|
|
0 > f * h || (a = b, h = f, b = d, f = e);
|
|
}
|
|
}
|
|
return d;
|
|
}
|
|
function e(a, b, c, d, h, e) {
|
|
return e > b !== d > b && a < (c - h) * (b - e) / (d - e) + h;
|
|
}
|
|
var q = b.Debug.notImplemented, l = b.AVM2.Runtime.asCoerceString, u = b.AVM2.Runtime.throwError, w = b.NumberUtilities.clamp, r = b.Bounds, h = b.Debug.assert, x = b.Debug.assertUnreachable, y = f.display.GradientType, G = f.display.SpreadMethod, I = f.display.InterpolationMethod, C = f.display.LineScaleMode, E = f.display.CapsStyle, O = f.display.JointStyle, K = b.ShapeData, F = function(g) {
|
|
function p() {
|
|
this._id = f.display.DisplayObject.getNextSyncID();
|
|
this._graphicsData = new K;
|
|
this._textures = [];
|
|
this._fillBounds = new r(134217728, 134217728, 134217728, 134217728);
|
|
this._lineBounds = new r(134217728, 134217728, 134217728, 134217728);
|
|
this._lastX = this._lastY = 0;
|
|
this._boundsIncludeLastCoordinates = !1;
|
|
this._parent = null;
|
|
this._topLeftStrokeWidth = this._bottomRightStrokeWidth = 0;
|
|
this._isDirty = !0;
|
|
}
|
|
__extends(p, g);
|
|
p.FromData = function(a) {
|
|
var b = new f.display.Graphics;
|
|
b._graphicsData = K.FromPlainObject(a.shape);
|
|
a.lineBounds && (b._lineBounds.copyFrom(a.lineBounds), b._fillBounds.copyFrom(a.fillBounds || a.lineBounds));
|
|
return b;
|
|
};
|
|
p.prototype.getGraphicsData = function() {
|
|
return this._graphicsData;
|
|
};
|
|
p.prototype.getUsedTextures = function() {
|
|
return this._textures;
|
|
};
|
|
p.prototype._setStrokeWidth = function(a) {
|
|
switch(a) {
|
|
case 1:
|
|
this._topLeftStrokeWidth = 0;
|
|
this._bottomRightStrokeWidth = 1;
|
|
break;
|
|
case 3:
|
|
this._topLeftStrokeWidth = 1;
|
|
this._bottomRightStrokeWidth = 2;
|
|
break;
|
|
default:
|
|
this._bottomRightStrokeWidth = this._topLeftStrokeWidth = a = Math.ceil(.5 * a) | 0;
|
|
}
|
|
};
|
|
p.prototype._setParent = function(a) {
|
|
h(!this._parent);
|
|
this._parent = a;
|
|
};
|
|
p.prototype._invalidateParent = function() {
|
|
h(this._parent, "Graphics instances must have a parent.");
|
|
this._parent._invalidateFillAndLineBounds(!0, !0);
|
|
this._parent._setDirtyFlags(4194304);
|
|
};
|
|
p.prototype._invalidate = function() {
|
|
this._invalidateParent();
|
|
this._isDirty = !0;
|
|
};
|
|
p.prototype._getContentBounds = function(a) {
|
|
"undefined" === typeof a && (a = !0);
|
|
return a ? this._lineBounds : this._fillBounds;
|
|
};
|
|
p.prototype.clear = function() {
|
|
this._graphicsData.isEmpty() || (this._graphicsData.clear(), this._textures.length = 0, this._fillBounds.setToSentinels(), this._lineBounds.setToSentinels(), this._lastX = this._lastY = 0, this._boundsIncludeLastCoordinates = !1, this._invalidate());
|
|
};
|
|
p.prototype.beginFill = function(a, b) {
|
|
"undefined" === typeof b && (b = 1);
|
|
a = a >>> 0 & 16777215;
|
|
b = Math.round(255 * w(+b, -1, 1)) | 0;
|
|
this._graphicsData.beginFill(a << 8 | b);
|
|
};
|
|
p.prototype.beginGradientFill = function(a, b, c, d, h, e, f, l) {
|
|
"undefined" === typeof h && (h = null);
|
|
"undefined" === typeof e && (e = "pad");
|
|
"undefined" === typeof f && (f = "rgb");
|
|
"undefined" === typeof l && (l = 0);
|
|
this._writeGradientStyle(2, a, b, c, d, h, e, f, l, !1);
|
|
};
|
|
p.prototype.beginBitmapFill = function(a, b, c, d) {
|
|
"undefined" === typeof b && (b = null);
|
|
"undefined" === typeof c && (c = !0);
|
|
"undefined" === typeof d && (d = !1);
|
|
this._writeBitmapStyle(3, a, b, c, d, !1);
|
|
};
|
|
p.prototype.endFill = function() {
|
|
this._graphicsData.endFill();
|
|
};
|
|
p.prototype.lineStyle = function(a, b, c, d, h, e, f, g) {
|
|
"undefined" === typeof b && (b = 0);
|
|
"undefined" === typeof c && (c = 1);
|
|
"undefined" === typeof d && (d = !1);
|
|
"undefined" === typeof h && (h = "normal");
|
|
"undefined" === typeof e && (e = null);
|
|
"undefined" === typeof f && (f = null);
|
|
"undefined" === typeof g && (g = 3);
|
|
a = +a;
|
|
b = b >>> 0 & 16777215;
|
|
c = Math.round(255 * w(+c, -1, 1));
|
|
d = !!d;
|
|
h = l(h);
|
|
e = l(e);
|
|
f = l(f);
|
|
g = w(+g | 0, 0, 255);
|
|
isNaN(a) ? (this._setStrokeWidth(0), this._graphicsData.endLine()) : (a = 20 * w(+a, 0, 255) | 0, this._setStrokeWidth(a), h = C.toNumber(l(h)), 0 > h && (h = C.toNumber(C.NORMAL)), e = E.toNumber(l(e)), 0 > e && (e = E.toNumber(E.ROUND)), f = O.toNumber(l(f)), 0 > f && (f = O.toNumber(O.ROUND)), this._graphicsData.lineStyle(a, b << 8 | c, d, h, e, f, g));
|
|
};
|
|
p.prototype.lineGradientStyle = function(a, b, c, d, h, e, f, l) {
|
|
"undefined" === typeof h && (h = null);
|
|
"undefined" === typeof e && (e = "pad");
|
|
"undefined" === typeof f && (f = "rgb");
|
|
"undefined" === typeof l && (l = 0);
|
|
this._writeGradientStyle(6, a, b, c, d, h, e, f, l, !this._graphicsData.hasLines);
|
|
};
|
|
p.prototype.lineBitmapStyle = function(a, b, c, d) {
|
|
"undefined" === typeof b && (b = null);
|
|
"undefined" === typeof c && (c = !0);
|
|
"undefined" === typeof d && (d = !1);
|
|
this._writeBitmapStyle(7, a, b, c, d, !this._graphicsData.hasLines);
|
|
};
|
|
p.prototype.drawRect = function(a, b, c, d) {
|
|
a = 20 * a | 0;
|
|
b = 20 * b | 0;
|
|
c = a + (20 * c | 0);
|
|
d = b + (20 * d | 0);
|
|
a === this._lastX && b === this._lastY || this._graphicsData.moveTo(a, b);
|
|
this._graphicsData.lineTo(c, b);
|
|
this._graphicsData.lineTo(c, d);
|
|
this._graphicsData.lineTo(a, d);
|
|
this._graphicsData.lineTo(a, b);
|
|
this._extendBoundsByPoint(c, d);
|
|
this._applyLastCoordinates(a, b);
|
|
this._invalidate();
|
|
};
|
|
p.prototype.drawRoundRect = function(a, b, c, d, h, e) {
|
|
a = +a;
|
|
b = +b;
|
|
c = +c;
|
|
d = +d;
|
|
h = +h;
|
|
if ((e = +e) && h) {
|
|
h = h / 2 | 0;
|
|
e = e / 2 | 0;
|
|
var f = c / 2, l = d / 2;
|
|
h > f && (h = f);
|
|
e > l && (e = l);
|
|
f === h && l === e ? h === e ? this.drawCircle(a + h, b + e, h) : this.drawEllipse(a, b, 2 * h, 2 * e) : (c = a + c, d = b + d, f = a + h, h = c - h, l = b + e, e = d - e, this.moveTo(c, e), this.curveTo(c, d, h, d), this.lineTo(f, d), this.curveTo(a, d, a, e), this.lineTo(a, l), this.curveTo(a, b, f, b), this.lineTo(h, b), this.curveTo(c, b, c, l), this.lineTo(c, e));
|
|
} else {
|
|
this.drawRect(a, b, c, d);
|
|
}
|
|
};
|
|
p.prototype.drawRoundRectComplex = function(a, b, c, d, h, e, f, l) {
|
|
a = +a;
|
|
b = +b;
|
|
c = +c;
|
|
d = +d;
|
|
h = +h;
|
|
e = +e;
|
|
f = +f;
|
|
l = +l;
|
|
if (h | e | f | l) {
|
|
c = a + c;
|
|
d = b + d;
|
|
var g = a + h;
|
|
this.moveTo(c, d - l);
|
|
this.curveTo(c, d, c - l, d);
|
|
this.lineTo(a + f, d);
|
|
this.curveTo(a, d, a, d - f);
|
|
this.lineTo(a, b + h);
|
|
this.curveTo(a, b, g, b);
|
|
this.lineTo(c - e, b);
|
|
this.curveTo(c, b, c, b + e);
|
|
this.lineTo(c, d - l);
|
|
} else {
|
|
this.drawRect(a, b, c, d);
|
|
}
|
|
};
|
|
p.prototype.drawCircle = function(a, b, c) {
|
|
c = +c;
|
|
this.drawEllipse(+a - c, +b - c, 2 * c, 2 * c);
|
|
};
|
|
p.prototype.drawEllipse = function(a, b, c, d) {
|
|
c = +c / 2;
|
|
d = +d / 2;
|
|
a = +a + c;
|
|
b = +b + d;
|
|
var h = a + c, e = b;
|
|
this.moveTo(h, e);
|
|
for (var f = 0, l = 1, g = 0, n = 0;4 > n;n++) {
|
|
var m = f + Math.PI / 2, f = 4 / 3 * Math.tan((m - f) / 4), p = h - g * f * c, k = e + l * f * d, l = Math.cos(m), g = Math.sin(m), h = a + l * c, e = b + g * d;
|
|
this.cubicCurveTo(p, k, h + g * f * c, e - l * f * d, h, e);
|
|
f = m;
|
|
}
|
|
};
|
|
p.prototype.moveTo = function(a, b) {
|
|
a = 20 * a | 0;
|
|
b = 20 * b | 0;
|
|
this._graphicsData.moveTo(a, b);
|
|
this._lastX = a;
|
|
this._lastY = b;
|
|
this._boundsIncludeLastCoordinates = !1;
|
|
};
|
|
p.prototype.lineTo = function(a, b) {
|
|
a = 20 * a | 0;
|
|
b = 20 * b | 0;
|
|
this._graphicsData.lineTo(a, b);
|
|
this._applyLastCoordinates(a, b);
|
|
this._invalidate();
|
|
};
|
|
p.prototype.curveTo = function(a, b, c, h) {
|
|
a = 20 * a | 0;
|
|
b = 20 * b | 0;
|
|
c = 20 * c | 0;
|
|
h = 20 * h | 0;
|
|
this._graphicsData.curveTo(a, b, c, h);
|
|
(a < this._lastX || a > c) && this._extendBoundsByX(d(this._lastX, a, c) | 0);
|
|
(b < this._lastY || b > h) && this._extendBoundsByY(d(this._lastY, b, h) | 0);
|
|
this._applyLastCoordinates(c, h);
|
|
this._invalidate();
|
|
};
|
|
p.prototype.cubicCurveTo = function(a, b, d, h, e, f) {
|
|
a = 20 * a | 0;
|
|
b = 20 * b | 0;
|
|
d = 20 * d | 0;
|
|
h = 20 * h | 0;
|
|
e = 20 * e | 0;
|
|
f = 20 * f | 0;
|
|
this._graphicsData.cubicCurveTo(a, b, d, h, e, f);
|
|
var l = this._lastX, g = this._lastY;
|
|
if (a < l || d < l || a > e || d > e) {
|
|
for (a = c(l, a, d, e), d = a.length;d--;) {
|
|
this._extendBoundsByX(a[d] | 0);
|
|
}
|
|
}
|
|
if (b < g || h < g || b > f || h > f) {
|
|
for (a = c(g, b, h, f), d = a.length;d--;) {
|
|
this._extendBoundsByY(a[d] | 0);
|
|
}
|
|
}
|
|
this._applyLastCoordinates(e, f);
|
|
this._invalidate();
|
|
};
|
|
p.prototype.copyFrom = function(a) {
|
|
this._graphicsData = a._graphicsData.clone();
|
|
this._fillBounds = a._fillBounds.clone();
|
|
this._lineBounds = a._lineBounds.clone();
|
|
this._textures = a._textures.concat();
|
|
this._lastX = a._lastX;
|
|
this._lastY = a._lastY;
|
|
this._boundsIncludeLastCoordinates = a._boundsIncludeLastCoordinates;
|
|
this._invalidate();
|
|
};
|
|
p.prototype.drawPath = function(a, b, c) {
|
|
"undefined" === typeof c && (c = "evenOdd");
|
|
l(c);
|
|
q("public flash.display.Graphics::drawPath");
|
|
};
|
|
p.prototype.drawTriangles = function(a, b, c, d) {
|
|
"undefined" === typeof d && (d = "none");
|
|
l(d);
|
|
q("public flash.display.Graphics::drawTriangles");
|
|
};
|
|
p.prototype.drawGraphicsData = function(a) {
|
|
q("public flash.display.Graphics::drawGraphicsData");
|
|
};
|
|
p.prototype._containsPoint = function(a, b, c) {
|
|
var d = this._graphicsData.hasLines;
|
|
if (!(c && d ? this._lineBounds : this._fillBounds).contains(a, b)) {
|
|
return!1;
|
|
}
|
|
var e = !1;
|
|
this._graphicsData.hasFills ? e = this._fillContainsPoint(a, b) : h(d, "Can't have non-empty bounds without line or fill set.");
|
|
!e && c && (e = this._linesContainsPoint(a, b));
|
|
return e;
|
|
};
|
|
p.prototype._fillContainsPoint = function(a, b) {
|
|
for (var c = this._graphicsData, d = c.commands, f = c.commandsPosition, l = c.coordinates, g = 0, p = 0, k = 0, r = 0, q = 0, s, u, w = !1, t = !1, y = 0, G = 0, C = !1, I = 0;I < f;I++) {
|
|
s = d[I];
|
|
switch(s) {
|
|
case 9:
|
|
h(g <= c.coordinatesPosition - 2);
|
|
w && t && e(a, b, p, k, y, G) && (C = !C);
|
|
w = !0;
|
|
p = y = l[g++];
|
|
k = G = l[g++];
|
|
continue;
|
|
case 10:
|
|
h(g <= c.coordinatesPosition - 2);
|
|
r = l[g++];
|
|
q = l[g++];
|
|
t && e(a, b, p, k, r, q) && (C = !C);
|
|
break;
|
|
case 11:
|
|
h(g <= c.coordinatesPosition - 4);
|
|
s = l[g++];
|
|
u = l[g++];
|
|
var r = l[g++], q = l[g++], E;
|
|
if (E = t) {
|
|
if (u > b === k > b && q > b === k > b) {
|
|
E = !1;
|
|
} else {
|
|
if (p >= a && s >= a && r >= a) {
|
|
E = !0;
|
|
} else {
|
|
E = k - 2 * u + q;
|
|
u = 2 * (u - k);
|
|
var O = u * u - 4 * E * (k - b);
|
|
0 > O ? E = !1 : (O = Math.sqrt(O), E = 1 / (E + E), k = (O - u) * E, u = (-u - O) * E, E = !1, 0 <= k && 1 >= k && m(p, s, r, k) > a && (E = !E), 0 <= u && 1 >= u && m(p, s, r, u) > a && (E = !E));
|
|
}
|
|
}
|
|
}
|
|
E && (C = !C);
|
|
break;
|
|
case 12:
|
|
h(g <= c.coordinatesPosition - 6);
|
|
s = l[g++];
|
|
u = l[g++];
|
|
var O = l[g++], K = l[g++], r = l[g++], q = l[g++];
|
|
if (E = t) {
|
|
E = a;
|
|
var F = k > b;
|
|
if (u > b === F && K > b === F && q > b === F) {
|
|
E = !1;
|
|
} else {
|
|
if (p < E && s < E && O < E && r < E) {
|
|
E = !1;
|
|
} else {
|
|
F = !1;
|
|
p = n(p, k, s, u, O, K, r, q, b);
|
|
for (s = p.length;s;s--) {
|
|
p[s] >= E && (F = !F);
|
|
}
|
|
E = F;
|
|
}
|
|
}
|
|
}
|
|
E && (C = !C);
|
|
break;
|
|
case 1:
|
|
;
|
|
case 2:
|
|
;
|
|
case 3:
|
|
;
|
|
case 4:
|
|
w && t && e(a, b, p, k, y, G) && (C = !C);
|
|
if (C) {
|
|
return!0;
|
|
}
|
|
w = !1;
|
|
t = 4 !== s;
|
|
break;
|
|
case 5:
|
|
g++;
|
|
break;
|
|
case 6:
|
|
;
|
|
case 7:
|
|
;
|
|
case 8:
|
|
break;
|
|
default:
|
|
x("Invalid command " + s + " encountered at index" + (I - 1) + " of " + f);
|
|
}
|
|
p = r;
|
|
k = q;
|
|
}
|
|
h(I === f);
|
|
h(g === c.coordinatesPosition);
|
|
w && t && e(a, b, p, k, y, G) && (C = !C);
|
|
return C;
|
|
};
|
|
p.prototype._linesContainsPoint = function(b, e) {
|
|
for (var f = this._graphicsData, l = f.commands, g = f.commandsPosition, n = f.coordinates, p = 0, k = 0, r = 0, q = 0, u = 0, w, t, y, G, C, I = 0, E = 0, O = 0, K = 0, F = 0, J = 0, A = E = 0;A < g;A++) {
|
|
w = l[A];
|
|
switch(w) {
|
|
case 9:
|
|
h(p <= f.coordinatesPosition - 2);
|
|
k = n[p++];
|
|
r = n[p++];
|
|
continue;
|
|
case 10:
|
|
h(p <= f.coordinatesPosition - 2);
|
|
if (0 === I) {
|
|
p++;
|
|
k = n[p++];
|
|
continue;
|
|
}
|
|
q = n[p++];
|
|
u = n[p++];
|
|
if (k === q && r === u) {
|
|
break;
|
|
}
|
|
if (F < k && F < q || K > k && K > q || E < r && E < u || J > r && J > u) {
|
|
break;
|
|
}
|
|
if (q === k || u === r) {
|
|
return!0;
|
|
}
|
|
C = ((b - k) * (q - k) + (e - r) * (u - r)) / s(k, r, q, u);
|
|
if (0 > C) {
|
|
if (s(b, e, k, r) <= O) {
|
|
return!0;
|
|
}
|
|
break;
|
|
}
|
|
if (1 < C) {
|
|
if (s(b, e, q, u) <= O) {
|
|
return!0;
|
|
}
|
|
break;
|
|
}
|
|
if (s(b, e, k + C * (q - k), r + C * (u - r)) <= O) {
|
|
return!0;
|
|
}
|
|
break;
|
|
case 11:
|
|
h(p <= f.coordinatesPosition - 4);
|
|
if (0 === I) {
|
|
p += 2;
|
|
p++;
|
|
k = n[p++];
|
|
continue;
|
|
}
|
|
w = n[p++];
|
|
t = n[p++];
|
|
var q = n[p++], u = n[p++], W = d(k, w, q);
|
|
if (F < k && F < W && F < q || K > k && K > W && K > q) {
|
|
break;
|
|
}
|
|
W = d(r, t, u);
|
|
if (E < r && E < W && E < u || J > r && J > W && J > u) {
|
|
break;
|
|
}
|
|
for (C = 0;1 > C;C += .02) {
|
|
if (y = m(k, w, q, C), !(y < K || y > F) && (G = m(r, t, u, C), !(G < J || G > E) && (b - y) * (b - y) + (e - G) * (e - G) < O)) {
|
|
return!0;
|
|
}
|
|
}
|
|
break;
|
|
case 12:
|
|
h(p <= f.coordinatesPosition - 6);
|
|
if (0 === I) {
|
|
p += 4;
|
|
p++;
|
|
k = n[p++];
|
|
continue;
|
|
}
|
|
w = n[p++];
|
|
t = n[p++];
|
|
var W = n[p++], ha = n[p++], q = n[p++], u = n[p++];
|
|
for (y = c(k, w, W, q);2 > y.length;) {
|
|
y.push(q);
|
|
}
|
|
if (F < k && F < q && F < y[0] && F < y[1] || K > k && K > q && K > y[0] && K > y[1]) {
|
|
break;
|
|
}
|
|
for (y = c(r, t, ha, u);2 > y.length;) {
|
|
y.push(u);
|
|
}
|
|
if (E < r && E < u && E < y[0] && E < y[1] || J > r && J > u && J > y[0] && J > y[1]) {
|
|
break;
|
|
}
|
|
for (C = 0;1 > C;C += .02) {
|
|
if (y = a(k, w, W, q, C), !(y < K || y > F) && (G = a(r, t, ha, u, C), !(G < J || G > E) && (b - y) * (b - y) + (e - G) * (e - G) < O)) {
|
|
return!0;
|
|
}
|
|
}
|
|
break;
|
|
case 5:
|
|
I = n[p++];
|
|
E = I >> 2;
|
|
O = E * E;
|
|
K = b - E;
|
|
F = b + E;
|
|
J = e - E;
|
|
E = e + E;
|
|
break;
|
|
case 1:
|
|
;
|
|
case 2:
|
|
;
|
|
case 3:
|
|
;
|
|
case 4:
|
|
;
|
|
case 6:
|
|
;
|
|
case 7:
|
|
;
|
|
case 8:
|
|
break;
|
|
default:
|
|
x("Invalid command " + w + " encountered at index" + (A - 1) + " of " + g);
|
|
}
|
|
k = q;
|
|
r = u;
|
|
}
|
|
h(A === g);
|
|
h(p === f.coordinatesPosition);
|
|
return!1;
|
|
};
|
|
p.prototype._writeBitmapStyle = function(a, c, d, h, e, l) {
|
|
b.isNullOrUndefined(c) ? u("TypeError", k.Errors.NullPointerError, "bitmap") : f.display.BitmapData.isType(c) || u("TypeError", k.Errors.CheckTypeFailedError, "bitmap", "flash.display.BitmapData");
|
|
b.isNullOrUndefined(d) ? d = f.geom.Matrix.FROZEN_IDENTITY_MATRIX : f.geom.Matrix.isType(d) || u("TypeError", k.Errors.CheckTypeFailedError, "matrix", "flash.geom.Matrix");
|
|
h = !!h;
|
|
e = !!e;
|
|
l || (l = this._textures.length, this._textures.push(c), this._graphicsData.beginBitmap(a, l, d, h, e));
|
|
};
|
|
p.prototype._writeGradientStyle = function(a, c, d, h, e, g, n, m, p, r) {
|
|
b.isNullOrUndefined(c) && u("TypeError", k.Errors.NullPointerError, "type");
|
|
c = y.toNumber(l(c));
|
|
0 > c && u("ArgumentError", k.Errors.InvalidEnumError, "type");
|
|
b.isNullOrUndefined(d) && u("TypeError", k.Errors.NullPointerError, "colors");
|
|
d instanceof Array || u("TypeError", k.Errors.CheckTypeFailedError, "colors", "Array");
|
|
h instanceof Array || u("TypeError", k.Errors.CheckTypeFailedError, "alphas", "Array");
|
|
b.isNullOrUndefined(h) && u("TypeError", k.Errors.NullPointerError, "alphas");
|
|
e instanceof Array || u("TypeError", k.Errors.CheckTypeFailedError, "ratios", "Array");
|
|
b.isNullOrUndefined(e) && u("TypeError", k.Errors.NullPointerError, "ratios");
|
|
var q = [], s = [], x = d.length, t = x === h.length && x === e.length;
|
|
if (t) {
|
|
for (var C = 0;C < x;C++) {
|
|
var E = +e[C];
|
|
if (255 < E || 0 > E) {
|
|
t = !1;
|
|
break;
|
|
}
|
|
q[C] = d[C] << 8 & 4294967040 | 255 * w(+h[C], 0, 1);
|
|
s[C] = E;
|
|
}
|
|
}
|
|
t && (b.isNullOrUndefined(g) ? g = f.geom.Matrix.FROZEN_IDENTITY_MATRIX : f.geom.Matrix.isType(g) || u("TypeError", k.Errors.CheckTypeFailedError, "matrix", "flash.geom.Matrix"), r || (d = G.toNumber(l(n)), 0 > d && (d = G.toNumber(G.PAD)), m = I.toNumber(l(m)), 0 > m && (m = I.toNumber(I.RGB)), p = w(+p, -1, 1) / 2 * 255 | 0, this._graphicsData.beginGradient(a, q, s, c, g, d, m, p)));
|
|
};
|
|
p.prototype._extendBoundsByPoint = function(a, b) {
|
|
this._extendBoundsByX(a);
|
|
this._extendBoundsByY(b);
|
|
};
|
|
p.prototype._extendBoundsByX = function(a) {
|
|
this._fillBounds.extendByX(a);
|
|
var b = this._lineBounds;
|
|
134217728 === b.xMin ? (b.xMin = a - this._topLeftStrokeWidth, b.xMax = a + this._bottomRightStrokeWidth) : (b.xMin = Math.min(a - this._topLeftStrokeWidth, b.xMin), b.xMax = Math.max(a + this._bottomRightStrokeWidth, b.xMax));
|
|
};
|
|
p.prototype._extendBoundsByY = function(a) {
|
|
this._fillBounds.extendByY(a);
|
|
var b = this._lineBounds;
|
|
134217728 === b.yMin ? (b.yMin = a - this._topLeftStrokeWidth, b.yMax = a + this._bottomRightStrokeWidth) : (b.yMin = Math.min(a - this._topLeftStrokeWidth, b.yMin), b.yMax = Math.max(a + this._bottomRightStrokeWidth, b.yMax));
|
|
};
|
|
p.prototype._applyLastCoordinates = function(a, b) {
|
|
this._boundsIncludeLastCoordinates || this._extendBoundsByPoint(this._lastX, this._lastY);
|
|
this._boundsIncludeLastCoordinates = !0;
|
|
this._lastX = a;
|
|
this._lastY = b;
|
|
this._extendBoundsByPoint(a, b);
|
|
};
|
|
p.classInitializer = null;
|
|
p.initializer = null;
|
|
p.classSymbols = null;
|
|
p.instanceSymbols = null;
|
|
return p;
|
|
}(g.ASNative);
|
|
t.Graphics = F;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(k) {
|
|
var s = b.Debug.assert, m = b.Debug.notImplemented, d = function(a) {
|
|
function b() {
|
|
k.DisplayObjectContainer.instanceConstructorNoInitialize.call(this);
|
|
this._constructChildren();
|
|
}
|
|
__extends(b, a);
|
|
b.prototype._initializeChildren = function(a) {
|
|
for (var b in a.stateAtDepth) {
|
|
var c = a.stateAtDepth[b];
|
|
if (c) {
|
|
var d = k.DisplayObject.createAnimatedDisplayObject(c, !1);
|
|
this.addTimelineObjectAtDepth(d, c.depth);
|
|
c.symbol.isAVM1Object && this._initAvm1Bindings(d, c);
|
|
}
|
|
}
|
|
};
|
|
b.prototype._initAvm1Bindings = function(a, b) {
|
|
var c = g.avm1lib.getAVM1Object(a);
|
|
s(c);
|
|
b.variableName && c.asSetPublicProperty("variable", b.variableName);
|
|
var d = b.events;
|
|
if (d) {
|
|
for (var f = [], m = 0;m < d.length;m++) {
|
|
for (var k = d[m], r = k.eventNames, k = k.handler.bind(a), h = 0;h < r.length;h++) {
|
|
var x = r[h], t = a;
|
|
if ("mouseDown" === x || "mouseUp" === x || "mouseMove" === x) {
|
|
t = a.stage;
|
|
}
|
|
t.addEventListener(x, k, !1);
|
|
f.push({eventName:x, fn:k, target:t});
|
|
}
|
|
}
|
|
0 < f.length && a.addEventListener("removed", function(a) {
|
|
for (var b = 0;b < a.length;b++) {
|
|
a[b].target.removeEventListener(a[b].eventName, a[b].fn, !1);
|
|
}
|
|
}.bind(a, f), !1);
|
|
}
|
|
b.name && (d = g.avm1lib.getAVM1Object(this), void 0 === d.asGetPublicProperty(b.name) && d.asSetPublicProperty(b.name, c));
|
|
};
|
|
b.prototype._canHaveGraphics = function() {
|
|
return!0;
|
|
};
|
|
b.prototype._getGraphics = function() {
|
|
return this._graphics;
|
|
};
|
|
Object.defineProperty(b.prototype, "graphics", {get:function() {
|
|
return this._ensureGraphics();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "buttonMode", {get:function() {
|
|
return this._buttonMode;
|
|
}, set:function(a) {
|
|
this._buttonMode = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "dropTarget", {get:function() {
|
|
m("public flash.display.Sprite::get dropTarget");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "hitArea", {get:function() {
|
|
return this._hitArea;
|
|
}, set:function(a) {
|
|
this._hitArea !== a && (a && a._hitTarget && (a._hitTarget._hitArea = null), this._hitArea = a) && (a._hitTarget = this);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "useHandCursor", {get:function() {
|
|
return this._useHandCursor;
|
|
}, set:function(a) {
|
|
this._useHandCursor = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "soundTransform", {get:function() {
|
|
m("public flash.display.Sprite::get soundTransform");
|
|
}, set:function(a) {
|
|
m("public flash.display.Sprite::set soundTransform");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.startDrag = function(a, b) {
|
|
m("public flash.display.Sprite::startDrag");
|
|
};
|
|
b.prototype.stopDrag = function() {
|
|
m("public flash.display.Sprite::stopDrag");
|
|
};
|
|
b.prototype.startTouchDrag = function(a, b, c) {
|
|
m("public flash.display.Sprite::startTouchDrag");
|
|
};
|
|
b.prototype.stopTouchDrag = function(a) {
|
|
m("public flash.display.Sprite::stopTouchDrag");
|
|
};
|
|
b.prototype._containsPoint = function(b, c, d, f, l, g) {
|
|
return 3 === l && this._hitArea && this._mouseEnabled ? (b = this._hitArea._containsGlobalPoint(b, c, 2, g), 2 === b && (s(0 === g.length), g.push(this)), b) : a.prototype._containsPoint.call(this, b, c, d, f, l, g);
|
|
};
|
|
b.prototype._containsPointDirectly = function(a, b) {
|
|
var c = this._getGraphics();
|
|
return!!c && c._containsPoint(a, b, !0);
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = function(a) {
|
|
this._graphics = null;
|
|
this._buttonMode = !1;
|
|
this._hitArea = this._dropTarget = null;
|
|
this._useHandCursor = !0;
|
|
this._hitTarget = null;
|
|
a && (a.isRoot && (this._root = this), a.numFrames && (s(1 <= a.frames.length, "Sprites have at least one frame."), a = a.frames[0], s(a, "Initial frame is not defined."), this._initializeChildren(a)));
|
|
};
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(f.display.DisplayObjectContainer);
|
|
k.Sprite = d;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(t) {
|
|
var s = b.Debug.assert, m = b.Debug.assertUnreachable, d = b.AVM2.Runtime.asCoerceString, a = b.AVM2.Runtime.throwError, c = b.Telemetry, n = b.AVM2.ABC.Multiname;
|
|
(function(a) {
|
|
a[a.SWF1 = 1] = "SWF1";
|
|
a[a.SWF9 = 2] = "SWF9";
|
|
a[a.SWF10 = 3] = "SWF10";
|
|
})(t.FrameNavigationModel || (t.FrameNavigationModel = {}));
|
|
var p = function() {
|
|
function a(b) {
|
|
this._mc = b;
|
|
this._soundStream = this._startSoundRegistrations = null;
|
|
}
|
|
a.prototype.registerStartSounds = function(a, b) {
|
|
null === this._startSoundRegistrations && (this._startSoundRegistrations = {});
|
|
this._startSoundRegistrations[a] = b;
|
|
};
|
|
a.prototype.initSoundStream = function(a) {
|
|
this._soundStream = new t.MovieClipSoundStream(a, this._mc);
|
|
};
|
|
a.prototype.addSoundStreamBlock = function(a, b) {
|
|
this._soundStream.appendBlock(a, b);
|
|
};
|
|
a.prototype._startSounds = function(a) {
|
|
if (a = this._startSoundRegistrations[a]) {
|
|
for (var b = this._soundClips || (this._soundClips = {}), c = this._mc.loaderInfo, d = 0;d < a.length;d++) {
|
|
var h = a[d], e = h.soundId, h = h.soundInfo, f = b[e];
|
|
if (!f) {
|
|
var g = c.getSymbolById(e);
|
|
if (!g) {
|
|
continue;
|
|
}
|
|
f = g.symbolClass;
|
|
g = f.initializeFrom(g);
|
|
f.instanceConstructorNoInitialize.call(g);
|
|
b[e] = f = {object:g};
|
|
}
|
|
f.channel && (f.channel.stop(), f.channel = null);
|
|
h.stop || (f.channel = f.object.play(0, h.hasLoops ? h.loopCount : 0));
|
|
}
|
|
}
|
|
};
|
|
a.prototype.syncSounds = function(a) {
|
|
null !== this._startSoundRegistrations && this._startSounds(a);
|
|
this._soundStream && this._soundStream.playFrame(a);
|
|
};
|
|
return a;
|
|
}(), e = function(b) {
|
|
function e() {
|
|
t.Sprite.instanceConstructorNoInitialize.call(this);
|
|
}
|
|
__extends(e, b);
|
|
e.reset = function() {
|
|
e.frameNavigationModel = 3;
|
|
e._callQueue = [];
|
|
};
|
|
e.runFrameScripts = function() {
|
|
k.enterTimeline("MovieClip.executeFrame");
|
|
var a = e._callQueue;
|
|
e._callQueue = [];
|
|
for (var b = 0;b < a.length;b++) {
|
|
var c = a[b];
|
|
c._allowFrameNavigation = 1 === e.frameNavigationModel;
|
|
c.callFrame(c._currentFrame);
|
|
c._allowFrameNavigation = !0;
|
|
c._nextFrame !== c._currentFrame && (2 === e.frameNavigationModel ? (c._advanceFrame(), c._constructFrame(), c._removeFlags(4096), c.callFrame(c._currentFrame)) : t.DisplayObject.performFrameNavigation(!1, !0));
|
|
}
|
|
k.leaveTimeline();
|
|
};
|
|
e.prototype._initFrame = function(a) {
|
|
if (a) {
|
|
if (this.buttonMode && (a = null, this._mouseOver ? a = this._mouseDown ? "_down" : "_over" : null !== this._currentButtonState && (a = "_up"), a !== this._currentButtonState && this._buttonFrames[a])) {
|
|
this.stop();
|
|
this._gotoFrame(a, null);
|
|
this._currentButtonState = a;
|
|
this._advanceFrame();
|
|
return;
|
|
}
|
|
1 < this._totalFrames && !this._stopped && this._hasFlags(256) && this._nextFrame++;
|
|
}
|
|
this._advanceFrame();
|
|
};
|
|
e.prototype._constructFrame = function() {
|
|
this._constructChildren();
|
|
};
|
|
e.prototype._enqueueFrameScripts = function() {
|
|
this._hasFlags(4096) && (this._removeFlags(4096), e._callQueue.push(this));
|
|
b.prototype._enqueueFrameScripts.call(this);
|
|
};
|
|
Object.defineProperty(e.prototype, "currentFrame", {get:function() {
|
|
return this._currentFrame - this._sceneForFrameIndex(this._currentFrame).offset;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "framesLoaded", {get:function() {
|
|
return this._frames.length;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "totalFrames", {get:function() {
|
|
return this._totalFrames;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "trackAsMenu", {get:function() {
|
|
return this._trackAsMenu;
|
|
}, set:function(a) {
|
|
this._trackAsMenu = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "scenes", {get:function() {
|
|
return this._scenes.map(function(a) {
|
|
return a.clone();
|
|
});
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "currentScene", {get:function() {
|
|
return this._sceneForFrameIndex(this._currentFrame).clone();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "currentLabel", {get:function() {
|
|
var a = this._labelForFrame(this._currentFrame);
|
|
return a ? a.name : null;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "currentFrameLabel", {get:function() {
|
|
var a = this._sceneForFrameIndex(this._currentFrame);
|
|
return(a = a.getLabelByFrame(this._currentFrame - a.offset)) && a.name;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "enabled", {get:function() {
|
|
return this._enabled;
|
|
}, set:function(a) {
|
|
this._enabled = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "isPlaying", {get:function() {
|
|
return this._isPlaying;
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype.play = function() {
|
|
1 < this._totalFrames && (this._isPlaying = !0);
|
|
this._stopped = !1;
|
|
};
|
|
e.prototype.stop = function() {
|
|
this._isPlaying = !1;
|
|
this._stopped = !0;
|
|
};
|
|
e.prototype._gotoFrame = function(b, c) {
|
|
var e;
|
|
if (null !== c) {
|
|
c = d(c);
|
|
var h = this._scenes;
|
|
s(h.length, "There should be at least one scene defined.");
|
|
for (var f = 0;f < h.length && (e = h[f], e.name !== c);f++) {
|
|
}
|
|
f === h.length && a("ArgumentError", k.Errors.SceneNotFoundError, c);
|
|
} else {
|
|
e = this._sceneForFrameIndex(this._currentFrame);
|
|
}
|
|
h = parseInt(b, 10);
|
|
h != b && ((h = e.getLabelByName(b)) || a("ArgumentError", k.Errors.FrameLabelNotFoundError, b, c), h = h.frame);
|
|
this._gotoFrameAbs(e.offset + h);
|
|
};
|
|
e.prototype._gotoFrameAbs = function(a) {
|
|
1 > a ? a = 1 : a > this._totalFrames && (a = this._totalFrames);
|
|
a !== this._nextFrame && (this._nextFrame = a, this._allowFrameNavigation && (2 === e.frameNavigationModel ? (this._advanceFrame(), this._constructFrame()) : t.DisplayObject.performFrameNavigation(!1, !0)));
|
|
};
|
|
e.prototype._advanceFrame = function() {
|
|
var a = this._currentFrame, b = this._nextFrame;
|
|
b > this._totalFrames && (b = 1);
|
|
if (a === b) {
|
|
this._nextFrame = b;
|
|
} else {
|
|
if (b > this.framesLoaded) {
|
|
this._nextFrame = b;
|
|
} else {
|
|
var c = this._frames, d = a, e = c[a - 1];
|
|
if (b < a) {
|
|
var f = c[0];
|
|
s(f, "FrameDelta is not defined.");
|
|
if (f !== e) {
|
|
for (d = f.stateAtDepth, f = this._children.slice(), a = 0;a < f.length;a++) {
|
|
var l = f[a];
|
|
if (l._depth) {
|
|
var g = d[l._depth];
|
|
g && g.canBeAnimated(l) || this._removeAnimatedChild(l);
|
|
}
|
|
}
|
|
}
|
|
d = 0;
|
|
}
|
|
for (a = d;a < b;a++) {
|
|
if (f = c[a], s(f, "FrameDelta is not defined."), f !== e) {
|
|
var e = f, d = f.stateAtDepth, n;
|
|
for (n in d) {
|
|
l = this.getTimelineObjectAtDepth(n | 0);
|
|
g = d[n];
|
|
if (l) {
|
|
if (g && g.canBeAnimated(l)) {
|
|
g.symbol && !g.symbol.dynamic && l._setStaticContentFromSymbol(g.symbol);
|
|
l._animate(g);
|
|
continue;
|
|
}
|
|
this._removeAnimatedChild(l);
|
|
}
|
|
g && g.symbol && (l = t.DisplayObject.createAnimatedDisplayObject(g, !1), this.addTimelineObjectAtDepth(l, g.depth), g.symbol.isAVM1Object && this._initAvm1Bindings(l, g));
|
|
}
|
|
(d = f.soundStarts) && this._registerStartSounds(a + 1, d);
|
|
}
|
|
}
|
|
this._frameScripts[b] && (this._setFlags(4096), this._parent && this._propagateFlagsUp(8192));
|
|
this._currentFrame = this._nextFrame = b;
|
|
this._syncSounds(b);
|
|
}
|
|
}
|
|
};
|
|
e.prototype._sceneForFrameIndex = function(a) {
|
|
var b = this._scenes;
|
|
if (0 === a) {
|
|
return b[0];
|
|
}
|
|
for (var c = 0;c < b.length;c++) {
|
|
var d = b[c];
|
|
if (d.offset < a && d.offset + d.numFrames >= a) {
|
|
return d;
|
|
}
|
|
}
|
|
m("Must have at least one scene covering all frames.");
|
|
};
|
|
e.prototype._labelForFrame = function(a) {
|
|
for (var b = this._scenes, c = null, d = 0;d < b.length;d++) {
|
|
var e = b[d];
|
|
if (e.offset > a) {
|
|
break;
|
|
}
|
|
for (var f = e.labels, l = 0;l < f.length;l++) {
|
|
var g = f[l];
|
|
if (g.frame > a - e.offset) {
|
|
return c;
|
|
}
|
|
c = g;
|
|
}
|
|
}
|
|
return c;
|
|
};
|
|
e.prototype._removeAnimatedChild = function(a) {
|
|
this.removeChild(a);
|
|
if (a._name) {
|
|
var b = n.getPublicQualifiedName(a._name);
|
|
this[b] === a && (this[b] = null);
|
|
}
|
|
};
|
|
e.prototype.callFrame = function(a) {
|
|
if (a = this._frameScripts[a | 0]) {
|
|
try {
|
|
a.call(this);
|
|
} catch (b) {
|
|
throw c.instance.reportTelemetry({topic:"error", error:2}), this.stop(), b;
|
|
}
|
|
}
|
|
};
|
|
e.prototype.nextFrame = function() {
|
|
this.gotoAndStop(this._currentFrame + 1);
|
|
};
|
|
e.prototype.prevFrame = function() {
|
|
this.gotoAndStop(this._currentFrame - 1);
|
|
};
|
|
e.prototype.gotoAndPlay = function(b, c) {
|
|
"undefined" === typeof c && (c = null);
|
|
(0 === arguments.length || 2 < arguments.length) && a("ArgumentError", k.Errors.WrongArgumentCountError, "flash.display::MovieClip/gotoAndPlay()", 1, arguments.length);
|
|
c = d(c);
|
|
b = d(b) + "";
|
|
this.play();
|
|
this._gotoFrame(b, c);
|
|
};
|
|
e.prototype.gotoAndStop = function(b, c) {
|
|
"undefined" === typeof c && (c = null);
|
|
(0 === arguments.length || 2 < arguments.length) && a("ArgumentError", k.Errors.WrongArgumentCountError, "flash.display::MovieClip/gotoAndPlay()", 1, arguments.length);
|
|
c = d(c);
|
|
b = d(b) + "";
|
|
this.stop();
|
|
this._gotoFrame(b, c);
|
|
};
|
|
e.prototype.addFrameScript = function(b, c) {
|
|
if (this._currentFrame) {
|
|
var d = arguments.length;
|
|
d & 1 && a("ArgumentError", k.Errors.TooFewArgumentsError, d, d + 1);
|
|
for (var h = this._frameScripts, e = this._totalFrames, f = 0;f < d;f += 2) {
|
|
var l = (arguments[f] | 0) + 1;
|
|
1 > l || l > e || (h[l] = arguments[f + 1], l === this._currentFrame && (this._setFlags(4096), this._parent && this._propagateFlagsUp(8192)));
|
|
}
|
|
}
|
|
};
|
|
Object.defineProperty(e.prototype, "_avm1SymbolClass", {get:function() {
|
|
return this._symbol && this._symbol.avm1SymbolClass || null;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "_isFullyLoaded", {get:function() {
|
|
return this.framesLoaded >= this.totalFrames;
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype._registerStartSounds = function(a, b) {
|
|
null === this._sounds && (this._sounds = new p(this));
|
|
this._sounds.registerStartSounds(a, b);
|
|
};
|
|
e.prototype._initSoundStream = function(a) {
|
|
null === this._sounds && (this._sounds = new p(this));
|
|
this._sounds.initSoundStream(a);
|
|
};
|
|
e.prototype._addSoundStreamBlock = function(a, b) {
|
|
this._sounds.addSoundStreamBlock(a, b);
|
|
};
|
|
e.prototype._syncSounds = function(a) {
|
|
null !== this._sounds && this._sounds.syncSounds(a);
|
|
};
|
|
e.prototype.addScene = function(a, b, c, d) {
|
|
this._scenes.push(new t.Scene(a, b, c, d));
|
|
};
|
|
e.prototype.addFrameLabel = function(a, b) {
|
|
var c = this._sceneForFrameIndex(b);
|
|
c.getLabelByName(a) || c.labels.push(new f.display.FrameLabel(a, b - c.offset));
|
|
};
|
|
e.prototype.prevScene = function() {
|
|
var a = this._sceneForFrameIndex(this._currentFrame);
|
|
0 !== a.offset && this._gotoFrameAbs(this._sceneForFrameIndex(a.offset).offset + 1);
|
|
};
|
|
e.prototype.nextScene = function() {
|
|
var a = this._sceneForFrameIndex(this._currentFrame);
|
|
a.offset + a.numFrames !== this._totalFrames && this._gotoFrameAbs(a.offset + a.numFrames + 1);
|
|
};
|
|
e.classInitializer = function() {
|
|
e.reset();
|
|
};
|
|
e.initializer = function(a) {
|
|
t.DisplayObject._advancableInstances.push(this);
|
|
this._currentFrame = 0;
|
|
this._totalFrames = 1;
|
|
this._trackAsMenu = !1;
|
|
this._scenes = [];
|
|
this._enabled = !0;
|
|
this._isPlaying = !1;
|
|
this._frames = [];
|
|
this._frameScripts = [];
|
|
this._nextFrame = 1;
|
|
this._stopped = !1;
|
|
this._allowFrameNavigation = !0;
|
|
this._sounds = null;
|
|
this._buttonFrames = Object.create(null);
|
|
this._currentButtonState = null;
|
|
if (a) {
|
|
if (this._totalFrames = a.numFrames, this._currentFrame = 1, a.isRoot || this.addScene("", a.labels, 0, a.numFrames), this._frames = a.frames, a.isAVM1Object) {
|
|
this._mouseEnabled = !1;
|
|
if (a.frameScripts) {
|
|
var b = g.avm1lib.getAVM1Object(this);
|
|
b.context = a.avm1Context;
|
|
for (var c = a.frameScripts, d = 0;d < c.length;d += 2) {
|
|
b.addFrameScript(c[d], c[d + 1]);
|
|
}
|
|
}
|
|
a.avm1Name && (this.name = a.avm1Name);
|
|
}
|
|
} else {
|
|
this.addScene("", [], 0, this._totalFrames);
|
|
}
|
|
};
|
|
e.classSymbols = null;
|
|
e.instanceSymbols = null;
|
|
return e;
|
|
}(f.display.Sprite);
|
|
t.MovieClip = e;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(g) {
|
|
function k(a, b) {
|
|
var d;
|
|
try {
|
|
d = b.addSourceBuffer("audio/mpeg");
|
|
a.mediaSource = b;
|
|
a.sourceBuffer = d;
|
|
var f = 0;
|
|
a.rawFrames.forEach(function(a) {
|
|
f += a.length;
|
|
});
|
|
if (0 !== f) {
|
|
var e = new Uint8Array(f), g = 0;
|
|
a.rawFrames.forEach(function(a) {
|
|
e.set(a, g);
|
|
g += a.length;
|
|
});
|
|
d.appendBuffer(e);
|
|
}
|
|
a.rawFrames = null;
|
|
} catch (l) {
|
|
console.error("MediaSource mp3 playback is not supported: " + l);
|
|
}
|
|
}
|
|
function m(a, b) {
|
|
var d = !1, f;
|
|
a.addEventListener("timeupdate", function(a) {
|
|
d ? performance.now() : (f = performance.now(), d = !0);
|
|
});
|
|
a.addEventListener("pause", function(a) {
|
|
d = !1;
|
|
});
|
|
a.addEventListener("seeking", function(a) {
|
|
d = !1;
|
|
});
|
|
}
|
|
var d = function() {
|
|
function a(a, b) {
|
|
this.movieClip = b;
|
|
this.data = {sampleRate:a.sampleRate, channels:a.channels};
|
|
this.seekIndex = [];
|
|
this.position = 0;
|
|
var d = "mp3" === a.format;
|
|
if (d) {
|
|
var e = document.createElement("audio");
|
|
e.preload = "metadata";
|
|
e.loop = !1;
|
|
m(e, b);
|
|
if (e.canPlayType("audio/mpeg")) {
|
|
this.element = e;
|
|
"undefined" !== typeof MediaSource ? (d = new MediaSource, d.addEventListener("sourceopen", k.bind(null, this, d)), e.src = URL.createObjectURL(d)) : console.warn("MediaSource is not supported");
|
|
this.rawFrames = [];
|
|
return;
|
|
}
|
|
}
|
|
this.data.pcm = new Float32Array(a.samplesCount * a.channels);
|
|
if (d) {
|
|
var f = this;
|
|
f.decoderPosition = 0;
|
|
f.decoderSession = new MP3DecoderSession;
|
|
f.decoderSession.onframedata = function(a) {
|
|
var b = f.decoderPosition;
|
|
f.data.pcm.set(a, b);
|
|
f.decoderPosition = b + a.length;
|
|
}.bind(this);
|
|
f.decoderSession.onerror = function(a) {
|
|
console.error("ERROR: MP3DecoderSession: " + a);
|
|
};
|
|
}
|
|
}
|
|
a.prototype.appendBlock = function(a, b) {
|
|
var d = this.position;
|
|
this.seekIndex[a] = d + b.seek * this.data.channels;
|
|
this.position = d + b.samplesCount * this.data.channels;
|
|
if (this.sourceBuffer) {
|
|
this.sourceBuffer.appendBuffer(b.data);
|
|
} else {
|
|
if (this.rawFrames) {
|
|
this.rawFrames.push(b.data);
|
|
} else {
|
|
var e = this.decoderSession;
|
|
e ? e.pushAsync(b.data) : this.data.pcm.set(b.pcm, d);
|
|
}
|
|
}
|
|
};
|
|
a.prototype.playFrame = function(a) {
|
|
if (!isNaN(this.seekIndex[a])) {
|
|
var d = this.element;
|
|
if (d) {
|
|
var g = this.data, e = this.seekIndex[a] / g.sampleRate / g.channels;
|
|
if (!this.channel && (this.movieClip._isFullyLoaded || this.sourceBuffer)) {
|
|
this.sourceBuffer || (d.src = URL.createObjectURL(new Blob(this.rawFrames))), this.channel = a = b.media.SoundChannel.initializeFrom({element:d}), this.waitFor = this.expectedFrame = 0;
|
|
} else {
|
|
if (this.sourceBuffer || !isNaN(d.duration)) {
|
|
this.mediaSource && this.movieClip._isFullyLoaded && (this.mediaSource.endOfStream(), this.mediaSource = null), g = d.currentTime, this.expectedFrame !== a ? d.paused ? (d.play(), d.addEventListener("playing", function l(a) {
|
|
d.removeEventListener("playing", l);
|
|
d.currentTime = e;
|
|
})) : d.currentTime = e : 0 < this.waitFor ? this.waitFor <= e && (d.paused && d.play(), this.waitFor = 0) : 1 < g - e ? (console.warn("Sound is faster than frames by " + (g - e)), this.waitFor = g - .25, d.pause()) : 1 < e - g && (console.warn("Sound is slower than frames by " + (e - g)), d.currentTime = e + .25), this.expectedFrame = a + 1;
|
|
}
|
|
}
|
|
} else {
|
|
this.sound || (g = b.media.Sound.initializeFrom(this.data), a = g.play(), this.sound = g, this.channel = a);
|
|
}
|
|
}
|
|
};
|
|
return a;
|
|
}();
|
|
g.MovieClipSoundStream = d;
|
|
})(b.display || (b.display = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(t) {
|
|
var s = b.Debug.notImplemented, m = b.Debug.assert, d = b.Debug.somewhatImplemented, a = b.AVM2.Runtime.asCoerceString, c = b.AVM2.Runtime.throwError, n = function(b) {
|
|
function e() {
|
|
t.DisplayObjectContainer.instanceConstructorNoInitialize.call(this);
|
|
this._root = this;
|
|
this._stage = this;
|
|
this._frameRate = 24;
|
|
this._scaleMode = t.StageScaleMode.SHOW_ALL;
|
|
this._align = "";
|
|
this._stageHeight = this._stageWidth = 0;
|
|
this._showDefaultContextMenu = !0;
|
|
this._focus = null;
|
|
this._colorCorrection = t.ColorCorrection.DEFAULT;
|
|
this._colorCorrectionSupport = t.ColorCorrectionSupport.DEFAULT_OFF;
|
|
this._stageFocusRect = !0;
|
|
this._quality = t.StageQuality.HIGH;
|
|
this._fullScreenSourceRect = this._displayState = null;
|
|
this._mouseLock = !1;
|
|
this._stageVideos = new g.GenericVector(0, !0, g.ASObject);
|
|
this._stage3Ds = null;
|
|
this._colorARGB = 4294967295;
|
|
this._fullScreenHeight = this._fullScreenWidth = 0;
|
|
this._wmodeGPU = !1;
|
|
this._softKeyboardRect = new f.geom.Rectangle;
|
|
this._allowsFullScreenInteractive = this._allowsFullScreen = !1;
|
|
this._contentsScaleFactor = 1;
|
|
this._displayContextInfo = null;
|
|
this._timeout = -1;
|
|
this._invalidated = !1;
|
|
}
|
|
__extends(e, b);
|
|
Object.defineProperty(e.prototype, "frameRate", {get:function() {
|
|
return this._frameRate;
|
|
}, set:function(a) {
|
|
this._frameRate = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "scaleMode", {get:function() {
|
|
return this._scaleMode;
|
|
}, set:function(b) {
|
|
b = a(b);
|
|
0 > f.display.StageScaleMode.toNumber(b) && c("ArgumentError", k.Errors.InvalidEnumError, "scaleMode");
|
|
this._scaleMode = b;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "align", {get:function() {
|
|
return this._align;
|
|
}, set:function(b) {
|
|
b = a(b);
|
|
b = f.display.StageAlign.toNumber(b);
|
|
m(0 <= b);
|
|
this._align = f.display.StageAlign.fromNumber(b);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "stageWidth", {get:function() {
|
|
return this._stageWidth / 20 | 0;
|
|
}, set:function(a) {
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype._setInitialName = function() {
|
|
this._name = null;
|
|
};
|
|
e.prototype.setStageWidth = function(a) {
|
|
m((a | 0) === a);
|
|
this._stageWidth = 20 * a | 0;
|
|
};
|
|
Object.defineProperty(e.prototype, "stageHeight", {get:function() {
|
|
return this._stageHeight / 20 | 0;
|
|
}, set:function(a) {
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype.setStageHeight = function(a) {
|
|
m((a | 0) === a);
|
|
this._stageHeight = 20 * a | 0;
|
|
};
|
|
e.prototype.setStageColor = function(a) {
|
|
this._colorARGB = a;
|
|
};
|
|
Object.defineProperty(e.prototype, "showDefaultContextMenu", {get:function() {
|
|
return this._showDefaultContextMenu;
|
|
}, set:function(a) {
|
|
this._showDefaultContextMenu = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "focus", {get:function() {
|
|
return this._focus;
|
|
}, set:function(a) {
|
|
this._focus = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "colorCorrection", {get:function() {
|
|
return this._colorCorrection;
|
|
}, set:function(a) {
|
|
s("public flash.display.Stage::set colorCorrection");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "colorCorrectionSupport", {get:function() {
|
|
return this._colorCorrectionSupport;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "stageFocusRect", {get:function() {
|
|
return this._stageFocusRect;
|
|
}, set:function(a) {
|
|
this._stageFocusRect = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "quality", {get:function() {
|
|
return this._quality.toUpperCase();
|
|
}, set:function(b) {
|
|
b = (a(b) || "").toLowerCase();
|
|
0 > f.display.StageQuality.toNumber(b) && (b = f.display.StageQuality.HIGH);
|
|
this._quality = b;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "displayState", {get:function() {
|
|
return this._displayState;
|
|
}, set:function(b) {
|
|
d("public flash.display.Stage::set displayState");
|
|
this._displayState = a(b);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "fullScreenSourceRect", {get:function() {
|
|
return this._fullScreenSourceRect;
|
|
}, set:function(a) {
|
|
s("public flash.display.Stage::set fullScreenSourceRect");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "mouseLock", {get:function() {
|
|
return this._mouseLock;
|
|
}, set:function(a) {
|
|
d("public flash.display.Stage::set mouseLock");
|
|
this._mouseLock = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "stageVideos", {get:function() {
|
|
d("public flash.display.Stage::get stageVideos");
|
|
return this._stageVideos;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "stage3Ds", {get:function() {
|
|
s("public flash.display.Stage::get stage3Ds");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "color", {get:function() {
|
|
return this._colorARGB;
|
|
}, set:function(a) {
|
|
this._colorARGB = a | 4278190080;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "alpha", {get:function() {
|
|
return this._colorTransform.alphaMultiplier;
|
|
}, set:function(a) {
|
|
c("Error", k.Errors.InvalidStageMethodError);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "fullScreenWidth", {get:function() {
|
|
return this._fullScreenWidth;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "fullScreenHeight", {get:function() {
|
|
return this._fullScreenHeight;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "wmodeGPU", {get:function() {
|
|
return this._wmodeGPU;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "softKeyboardRect", {get:function() {
|
|
return this._softKeyboardRect;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "allowsFullScreen", {get:function() {
|
|
return this._allowsFullScreen;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "allowsFullScreenInteractive", {get:function() {
|
|
return this._allowsFullScreenInteractive;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "contentsScaleFactor", {get:function() {
|
|
return this._contentsScaleFactor;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "displayContextInfo", {get:function() {
|
|
return this._displayContextInfo;
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype.swapChildrenAt = function(a, b) {
|
|
s("public flash.display.Stage::swapChildrenAt");
|
|
};
|
|
e.prototype.invalidate = function() {
|
|
this._invalidated = !0;
|
|
};
|
|
e.prototype.isInvalidated = function() {
|
|
return this._invalidated;
|
|
};
|
|
e.prototype.isFocusInaccessible = function() {
|
|
s("public flash.display.Stage::isFocusInaccessible");
|
|
};
|
|
e.prototype.requireOwnerPermissions = function() {
|
|
d("public flash.display.Stage::requireOwnerPermissions");
|
|
};
|
|
e.prototype.render = function() {
|
|
this._invalidated && (t.DisplayObject._broadcastFrameEvent(f.events.Event.RENDER), this._invalidated = !1);
|
|
};
|
|
e.classInitializer = null;
|
|
e.classSymbols = null;
|
|
e.instanceSymbols = null;
|
|
e.initializer = null;
|
|
return e;
|
|
}(f.display.DisplayObjectContainer);
|
|
t.Stage = n;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.ActionScriptVersion");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.ACTIONSCRIPT2 = 2;
|
|
a.ACTIONSCRIPT3 = 3;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.ActionScriptVersion = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.BlendMode");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
;
|
|
case 1:
|
|
return a.NORMAL;
|
|
case 2:
|
|
return a.LAYER;
|
|
case 3:
|
|
return a.MULTIPLY;
|
|
case 4:
|
|
return a.SCREEN;
|
|
case 5:
|
|
return a.LIGHTEN;
|
|
case 6:
|
|
return a.DARKEN;
|
|
case 7:
|
|
return a.DIFFERENCE;
|
|
case 8:
|
|
return a.ADD;
|
|
case 9:
|
|
return a.SUBTRACT;
|
|
case 10:
|
|
return a.INVERT;
|
|
case 11:
|
|
return a.ALPHA;
|
|
case 12:
|
|
return a.ERASE;
|
|
case 13:
|
|
return a.OVERLAY;
|
|
case 14:
|
|
return a.HARDLIGHT;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.NORMAL:
|
|
return 1;
|
|
case a.LAYER:
|
|
return 2;
|
|
case a.MULTIPLY:
|
|
return 3;
|
|
case a.SCREEN:
|
|
return 4;
|
|
case a.LIGHTEN:
|
|
return 5;
|
|
case a.DARKEN:
|
|
return 6;
|
|
case a.DIFFERENCE:
|
|
return 7;
|
|
case a.ADD:
|
|
return 8;
|
|
case a.SUBTRACT:
|
|
return 9;
|
|
case a.INVERT:
|
|
return 10;
|
|
case a.ALPHA:
|
|
return 11;
|
|
case a.ERASE:
|
|
return 12;
|
|
case a.OVERLAY:
|
|
return 13;
|
|
case a.HARDLIGHT:
|
|
return 14;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.NORMAL = "normal";
|
|
a.LAYER = "layer";
|
|
a.MULTIPLY = "multiply";
|
|
a.SCREEN = "screen";
|
|
a.LIGHTEN = "lighten";
|
|
a.DARKEN = "darken";
|
|
a.ADD = "add";
|
|
a.SUBTRACT = "subtract";
|
|
a.DIFFERENCE = "difference";
|
|
a.INVERT = "invert";
|
|
a.OVERLAY = "overlay";
|
|
a.HARDLIGHT = "hardlight";
|
|
a.ALPHA = "alpha";
|
|
a.ERASE = "erase";
|
|
a.SHADER = "shader";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.BlendMode = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.ColorCorrection");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.DEFAULT;
|
|
case 1:
|
|
return a.ON;
|
|
case 2:
|
|
return a.OFF;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.DEFAULT:
|
|
return 0;
|
|
case a.ON:
|
|
return 1;
|
|
case a.OFF:
|
|
return 2;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.DEFAULT = "default";
|
|
a.ON = "on";
|
|
a.OFF = "off";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.ColorCorrection = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.ColorCorrectionSupport");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.UNSUPPORTED;
|
|
case 1:
|
|
return a.DEFAULT_ON;
|
|
case 2:
|
|
return a.DEFAULT_OFF;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.UNSUPPORTED:
|
|
return 0;
|
|
case a.DEFAULT_ON:
|
|
return 1;
|
|
case a.DEFAULT_OFF:
|
|
return 2;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.UNSUPPORTED = "unsupported";
|
|
a.DEFAULT_ON = "defaultOn";
|
|
a.DEFAULT_OFF = "defaultOff";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.ColorCorrectionSupport = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.FocusDirection");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.TOP = "top";
|
|
a.BOTTOM = "bottom";
|
|
a.NONE = "none";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.FocusDirection = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.AVM2.Runtime.asCoerceString, m = function(b) {
|
|
function a(a, b) {
|
|
this._name = k(a);
|
|
this._frame = b | 0;
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "name", {get:function() {
|
|
return this._name;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "frame", {get:function() {
|
|
return this._frame;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.clone = function() {
|
|
return new a(this._name, this._frame);
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.FrameLabel = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(t) {
|
|
var s = b.Debug.notImplemented, m = b.Debug.assert, d = b.Debug.somewhatImplemented, a = b.ArrayUtilities.DataBuffer, c = b.AVM2.Runtime.asCoerceString, n = b.AVM2.Runtime.throwError, p = b.AVM2.Runtime.AVM2, e = b.IntegerUtilities.swap32, q = b.ColorUtilities.premultiplyARGB, l = b.ColorUtilities.unpremultiplyARGB, u = b.ColorUtilities.RGBAToARGB, w = b.ArrayUtilities.indexOf, r = f.geom.Rectangle, h = function(h) {
|
|
function t(b, c, d, h) {
|
|
"undefined" === typeof d && (d = !0);
|
|
"undefined" === typeof h && (h = 4294967295);
|
|
b |= 0;
|
|
c |= 0;
|
|
h |= 0;
|
|
this._id = f.display.DisplayObject.getNextSyncID();
|
|
this._symbol && (b = this._symbol.width, c = this._symbol.height);
|
|
(b > t.MAXIMUM_WIDTH || 0 >= b || c > t.MAXIMUM_HEIGHT || 0 >= c || b * c > t.MAXIMUM_DIMENSION) && n("ArgumentError", k.Errors.InvalidBitmapData);
|
|
this._bitmapReferrers = [];
|
|
this._transparent = !!d;
|
|
this._rect = new r(0, 0, b, c);
|
|
if (this._symbol) {
|
|
this._data = new Uint8Array(this._symbol.data);
|
|
this._type = this._symbol.type;
|
|
if (1 === this._type || 2 === this._type || 3 === this._type) {
|
|
this._view = new Int32Array(this._data.buffer);
|
|
}
|
|
this._solidFillColorPBGRA = null;
|
|
} else {
|
|
this._data = new Uint8Array(b * c * 4), this._view = new Int32Array(this._data.buffer), this._type = 1, 0 === h >> 24 && d ? this._solidFillColorPBGRA = 0 : this.fillRect(this._rect, h);
|
|
}
|
|
this._dataBuffer = a.FromArrayBuffer(this._data.buffer);
|
|
this._invalidate();
|
|
}
|
|
__extends(t, h);
|
|
t.prototype._addBitmapReferrer = function(a) {
|
|
w(this._bitmapReferrers, a);
|
|
this._bitmapReferrers.push(a);
|
|
};
|
|
t.prototype._removeBitmapReferrer = function(a) {
|
|
a = w(this._bitmapReferrers, a);
|
|
this._bitmapReferrers[a] = null;
|
|
};
|
|
t.prototype._invalidate = function() {
|
|
if (!this._isDirty) {
|
|
this._isDirty = !0;
|
|
this._isRemoteDirty = !1;
|
|
for (var a = 0;a < this._bitmapReferrers.length;a++) {
|
|
var b = this._bitmapReferrers[a];
|
|
b && b._setDirtyFlags(16777216);
|
|
}
|
|
}
|
|
};
|
|
t.prototype._getTemporaryRectangleFrom = function(a, b) {
|
|
"undefined" === typeof b && (b = 0);
|
|
m(0 <= b && b < t._temporaryRectangles.length);
|
|
var c = t._temporaryRectangles[b];
|
|
a && c.copyFrom(a);
|
|
return c;
|
|
};
|
|
t.prototype.getDataBuffer = function() {
|
|
return this._dataBuffer;
|
|
};
|
|
t.prototype._getContentBounds = function() {
|
|
return b.Bounds.FromRectangle(this._rect);
|
|
};
|
|
t.prototype._getPixelData = function(a) {
|
|
var b = this._getTemporaryRectangleFrom(this._rect).intersectInPlace(a);
|
|
if (!b.isEmpty()) {
|
|
a = b.x;
|
|
for (var c = b.x + b.width, d = b.y, h = b.y + b.height, e = this._view, f = this._rect.width, b = new Int32Array(b.area), l = 0;d < h;d++) {
|
|
for (var g = d * f, n = a;n < c;n++) {
|
|
var m = e[g + n], p = m & 255, m = 255 * (m >>> 8) / p << 8 | p;
|
|
b[l++] = m;
|
|
}
|
|
}
|
|
return b;
|
|
}
|
|
};
|
|
t.prototype._putPixelData = function(a, b) {
|
|
var c = this._getTemporaryRectangleFrom(this._rect).intersectInPlace(a);
|
|
if (!c.isEmpty()) {
|
|
for (var d = c.x, h = c.x + c.width, e = c.y + c.height, f = this._view, l = this._rect.width, g = a.width * a.height - c.height + (d - a.x), n = a.width - c.width, m = this._transparent ? 0 : 255, c = c.y;c < e;c++) {
|
|
for (var p = c * l, k = d;k < h;k++) {
|
|
var r = b[g++], q = r & m;
|
|
f[p + k] = (((r >>> 8) * q + 254) / 255 & 16777215) << 8 | q;
|
|
}
|
|
g += n;
|
|
}
|
|
this._invalidate();
|
|
}
|
|
};
|
|
Object.defineProperty(t.prototype, "width", {get:function() {
|
|
return this._rect.width;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(t.prototype, "height", {get:function() {
|
|
return this._rect.height;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(t.prototype, "rect", {get:function() {
|
|
return this._rect.clone();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(t.prototype, "transparent", {get:function() {
|
|
return this._transparent;
|
|
}, enumerable:!0, configurable:!0});
|
|
t.prototype.clone = function() {
|
|
d("public flash.display.BitmapData::clone");
|
|
var a = new t(this._rect.width, this._rect.height, this._transparent, this._solidFillColorPBGRA);
|
|
a._view.set(this._view);
|
|
return a;
|
|
};
|
|
t.prototype.getPixel = function(a, b) {
|
|
return this.getPixel32(a | 0, b | 0) & 16777215;
|
|
};
|
|
t.prototype.getPixel32 = function(a, c) {
|
|
a |= 0;
|
|
c |= 0;
|
|
if (!this._rect.contains(a, c)) {
|
|
return 0;
|
|
}
|
|
this._ensureBitmapData();
|
|
var d = this._view[c * this._rect.width + a];
|
|
switch(this._type) {
|
|
case 1:
|
|
return d = e(d), l(d) >>> 0;
|
|
case 3:
|
|
return u(e(d));
|
|
default:
|
|
return b.Debug.notImplemented(b.ImageType[this._type]), 0;
|
|
}
|
|
};
|
|
t.prototype.setPixel = function(a, b, c) {
|
|
a |= 0;
|
|
b |= 0;
|
|
c |= 0;
|
|
this._rect.contains(a, b) && (this._ensureBitmapData(), a = b * this._rect.width + a, c = c & 16777215 | (this._view[a] & 255) << 24, c = q(c), this._view[a] = e(c), this._invalidate(), this._solidFillColorPBGRA = null);
|
|
};
|
|
t.prototype.setPixel32 = function(a, b, c) {
|
|
a |= 0;
|
|
b |= 0;
|
|
if (this._rect.contains(a, b)) {
|
|
this._ensureBitmapData();
|
|
var d = c >>> 24;
|
|
c &= 16777215;
|
|
d = this._transparent ? q(c | d << 24) : c | 4278190080;
|
|
this._view[b * this._rect.width + a] = e(d);
|
|
this._invalidate();
|
|
this._solidFillColorPBGRA = null;
|
|
}
|
|
};
|
|
t.prototype.applyFilter = function(a, b, c, h) {
|
|
d("public flash.display.BitmapData::applyFilter " + h);
|
|
};
|
|
t.prototype.colorTransform = function(a, b) {
|
|
d("public flash.display.BitmapData::colorTransform");
|
|
};
|
|
t.prototype.compare = function(a) {
|
|
s("public flash.display.BitmapData::compare");
|
|
};
|
|
t.prototype.copyChannel = function(a, b, c, d, h) {
|
|
s("public flash.display.BitmapData::copyChannel");
|
|
};
|
|
t.prototype.copyPixels = function(a, b, c, h, e, f) {
|
|
"undefined" === typeof h && (h = null);
|
|
"undefined" === typeof e && (e = null);
|
|
"undefined" === typeof f && (f = !1);
|
|
f = !!f;
|
|
if (h || e) {
|
|
s("public flash.display.BitmapData::copyPixels - Alpha");
|
|
} else {
|
|
var l = this._getTemporaryRectangleFrom(b, 0).roundInPlace();
|
|
b = this._rect;
|
|
e = a._rect;
|
|
var g = Math.max(l.x, 0);
|
|
h = Math.max(l.y, 0);
|
|
var n = Math.min(l.x + l.width, e.width), m = Math.min(l.y + l.height, e.height);
|
|
e = c.x | 0 + (g - l.x);
|
|
l = c.y | 0 + (h - l.y);
|
|
0 > e && (g -= e, e = 0);
|
|
0 > l && (h -= l, l = 0);
|
|
c = Math.min(n - g, b.width - e);
|
|
b = Math.min(m - h, b.height - l);
|
|
if (!(0 >= c || 0 >= b)) {
|
|
var n = g, m = h, p = e, k = l;
|
|
h = a._rect.width;
|
|
e = this._rect.width;
|
|
this._ensureBitmapData();
|
|
a._ensureBitmapData();
|
|
g = a._view;
|
|
l = this._view;
|
|
a._type !== this._type && d("public flash.display.BitmapData::copyPixels - Color Format Conversion");
|
|
if (f && 1 !== this._type) {
|
|
s("public flash.display.BitmapData::copyPixels - Merge Alpha");
|
|
} else {
|
|
if (null === this._solidFillColorPBGRA || this._solidFillColorPBGRA !== a._solidFillColorPBGRA) {
|
|
null !== a._solidFillColorPBGRA && 255 === (a._solidFillColorPBGRA & 255) && (f = !1);
|
|
if (f) {
|
|
this._copyPixelsAndMergeAlpha(g, n, m, h, l, p, k, e, c, b);
|
|
} else {
|
|
if (a = m * h + n | 0, f = k * e + p | 0, 0 === (c & 3)) {
|
|
for (n = 0;n < b;n = n + 1 | 0) {
|
|
for (m = 0;m < c;m = m + 4 | 0) {
|
|
l[f + m + 0 | 0] = g[a + m + 0 | 0], l[f + m + 1 | 0] = g[a + m + 1 | 0], l[f + m + 2 | 0] = g[a + m + 2 | 0], l[f + m + 3 | 0] = g[a + m + 3 | 0];
|
|
}
|
|
a = a + h | 0;
|
|
f = f + e | 0;
|
|
}
|
|
} else {
|
|
for (n = 0;n < b;n = n + 1 | 0) {
|
|
for (m = 0;m < c;m = m + 1 | 0) {
|
|
l[f + m | 0] = g[a + m | 0];
|
|
}
|
|
a = a + h | 0;
|
|
f = f + e | 0;
|
|
}
|
|
}
|
|
}
|
|
this._solidFillColorPBGRA = null;
|
|
this._invalidate();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
t.prototype._copyPixelsAndMergeAlpha = function(a, b, c, d, h, e, f, l, g, n) {
|
|
b = c * d + b | 0;
|
|
e = f * l + e | 0;
|
|
for (f = 0;f < n;f = f + 1 | 0) {
|
|
for (c = 0;c < g;c = c + 1 | 0) {
|
|
var m = a[b + c | 0], p = m & 255;
|
|
if (255 === p) {
|
|
h[e + c | 0] = m;
|
|
} else {
|
|
if (0 !== p) {
|
|
var k = m & 16711935, m = m >> 8 & 16711935, r = h[e + c | 0], q = r & 16711935, r = r >> 8 & 16711935, p = 256 - p, q = Math.imul(q, p) >> 8, r = Math.imul(r, p) >> 8;
|
|
h[e + c | 0] = (m + r & 16711935) << 8 | k + q & 16711935;
|
|
}
|
|
}
|
|
}
|
|
b = b + d | 0;
|
|
e = e + l | 0;
|
|
}
|
|
};
|
|
t.prototype.dispose = function() {
|
|
this._rect.setEmpty();
|
|
this._view = null;
|
|
this._invalidate();
|
|
};
|
|
t.prototype.draw = function(a, b, c, h, e, f) {
|
|
"undefined" === typeof b && (b = null);
|
|
"undefined" === typeof c && (c = null);
|
|
"undefined" === typeof h && (h = null);
|
|
"undefined" === typeof e && (e = null);
|
|
"undefined" === typeof f && (f = !1);
|
|
d("public flash.display.BitmapData::draw");
|
|
var l = p.instance.globals["Shumway.Player.Utils"];
|
|
b && (b = b.clone().toTwipsInPlace());
|
|
l.drawToBitmap(this, a, b, c, h, e, f);
|
|
this._isRemoteDirty = !0;
|
|
};
|
|
t.prototype.drawWithQuality = function(a, b, d, h, e, f, l) {
|
|
"undefined" === typeof h && (h = null);
|
|
"undefined" === typeof l && (l = null);
|
|
c(h);
|
|
c(l);
|
|
s("public flash.display.BitmapData::drawWithQuality");
|
|
};
|
|
t.prototype.fillRect = function(a, b) {
|
|
var c = this._transparent ? q(b) : b | 4278190080;
|
|
m(1 === this._type);
|
|
var c = e(c), d = this._getTemporaryRectangleFrom(this._rect).intersectInPlace(a);
|
|
if (!d.isEmpty() && (this._ensureBitmapData(), this._solidFillColorPBGRA !== c)) {
|
|
var h = this._view;
|
|
if (d.equals(this._rect)) {
|
|
var f = h.length;
|
|
if (0 === (f & 3)) {
|
|
for (var l = 0;l < f;l = l + 4 | 0) {
|
|
h[l + 0 | 0] = c, h[l + 1 | 0] = c, h[l + 2 | 0] = c, h[l + 3 | 0] = c;
|
|
}
|
|
} else {
|
|
for (l = 0;l < f;l = l + 1 | 0) {
|
|
h[l] = c;
|
|
}
|
|
}
|
|
this._solidFillColorPBGRA = c;
|
|
} else {
|
|
for (var f = d.x, l = d.x + d.width, g = d.y + d.height, n = this._rect.width, d = d.y;d < g;d = d + 1 | 0) {
|
|
for (var p = d * n | 0, k = f;k < l;k = k + 1 | 0) {
|
|
h[p + k | 0] = c;
|
|
}
|
|
}
|
|
this._solidFillColorPBGRA = null;
|
|
}
|
|
this._invalidate();
|
|
}
|
|
};
|
|
t.prototype.floodFill = function(a, b, c) {
|
|
s("public flash.display.BitmapData::floodFill");
|
|
};
|
|
t.prototype.generateFilterRect = function(a, b) {
|
|
s("public flash.display.BitmapData::generateFilterRect");
|
|
};
|
|
t.prototype.getColorBoundsRect = function(a, b, c) {
|
|
s("public flash.display.BitmapData::getColorBoundsRect");
|
|
};
|
|
t.prototype.getPixels = function(a) {
|
|
var b = new f.utils.ByteArray;
|
|
this.copyPixelsToByteArray(a, b);
|
|
return b;
|
|
};
|
|
t.prototype.copyPixelsToByteArray = function(a, b) {
|
|
var c = this._getPixelData(a);
|
|
c && b.writeRawBytes(new Uint8Array(c));
|
|
};
|
|
t.prototype.getVector = function(a) {
|
|
var b = new g.Uint32Vector(c.length), c = this._getPixelData(a);
|
|
if (!c) {
|
|
return b;
|
|
}
|
|
b.length = c.length;
|
|
b._view().set(c);
|
|
return b;
|
|
};
|
|
t.prototype.hitTest = function(a, b, c, d, h) {
|
|
s("public flash.display.BitmapData::hitTest");
|
|
};
|
|
t.prototype.merge = function(a, b, c, h, e, f, l) {
|
|
d("public flash.display.BitmapData::merge");
|
|
};
|
|
t.prototype.noise = function(a, b, c, h, e) {
|
|
d("public flash.display.BitmapData::noise");
|
|
};
|
|
t.prototype.paletteMap = function(a, b, c, h, e, f, l) {
|
|
d("public flash.display.BitmapData::paletteMap");
|
|
};
|
|
t.prototype.perlinNoise = function(a, b, c, h, e, f, l, g, n) {
|
|
d("public flash.display.BitmapData::perlinNoise");
|
|
};
|
|
t.prototype.pixelDissolve = function(a, b, c, d, h, e) {
|
|
s("public flash.display.BitmapData::pixelDissolve");
|
|
};
|
|
t.prototype.scroll = function(a, b) {
|
|
s("public flash.display.BitmapData::scroll");
|
|
};
|
|
t.prototype.setPixels = function(a, b) {
|
|
this._putPixelData(a, new Int32Array(b.readRawBytes()));
|
|
};
|
|
t.prototype.setVector = function(a, b) {
|
|
this._putPixelData(a, b._view());
|
|
};
|
|
t.prototype.threshold = function(a, b, d, h, e, f, l, g) {
|
|
c(h);
|
|
s("public flash.display.BitmapData::threshold");
|
|
};
|
|
t.prototype.lock = function() {
|
|
this._locked = !0;
|
|
};
|
|
t.prototype.unlock = function(a) {
|
|
this._locked = !1;
|
|
};
|
|
t.prototype.histogram = function(a) {
|
|
s("public flash.display.BitmapData::histogram");
|
|
};
|
|
t.prototype.encode = function(a, b, c) {
|
|
s("public flash.display.BitmapData::encode");
|
|
};
|
|
t.prototype._ensureBitmapData = function() {
|
|
var c = this._data;
|
|
if (this._isRemoteDirty) {
|
|
var d = b.AVM2.Runtime.AVM2.instance.globals["Shumway.Player.Utils"].requestBitmapData(this);
|
|
this._data = new Uint8Array(d.getBytes());
|
|
this._type = 3;
|
|
this._view = new Int32Array(this._data.buffer);
|
|
this._isDirty = this._isRemoteDirty = !1;
|
|
this._solidFillColorPBGRA = null;
|
|
}
|
|
switch(this._type) {
|
|
case 5:
|
|
;
|
|
case 4:
|
|
;
|
|
case 6:
|
|
b.Debug.somewhatImplemented("Image conversion " + b.ImageType[this._type] + " -> " + b.ImageType[1]);
|
|
break;
|
|
default:
|
|
if (1 !== this._type) {
|
|
var d = new Uint8Array(this._rect.width * this._rect.height * 4), h = new Int32Array(d.buffer);
|
|
b.ColorUtilities.convertImage(this._type, 1, this._view, h);
|
|
this._data = d;
|
|
this._view = h;
|
|
this._type = 1;
|
|
this._solidFillColorPBGRA = null;
|
|
}
|
|
;
|
|
}
|
|
1 !== this._type && (this._data = new Uint8Array(this._rect.width * this._rect.height * 4), this._view = new Int32Array(this._data.buffer), this._type = 1, this._fillWithDebugData(), this._solidFillColorPBGRA = null);
|
|
c !== this._data && (this._dataBuffer = a.FromArrayBuffer(this._data.buffer));
|
|
};
|
|
t.prototype._fillWithDebugData = function() {
|
|
var a = this._view;
|
|
e(4294928820);
|
|
for (var b = this._rect.width, c = this._rect.height, d = 0, h = 0;h < c;h++) {
|
|
for (var f = 0;f < b;f++) {
|
|
a[d++] = e(q(-1442840576 | (h & 255) << 16 | (f & 255) << 8 | 255));
|
|
}
|
|
}
|
|
};
|
|
t.classInitializer = function() {
|
|
};
|
|
t.initializer = function(a) {
|
|
this._symbol = a;
|
|
};
|
|
t.classSymbols = null;
|
|
t.instanceSymbols = null;
|
|
t.MAXIMUM_WIDTH = 8191;
|
|
t.MAXIMUM_HEIGHT = 8191;
|
|
t.MAXIMUM_DIMENSION = 16777215;
|
|
t._temporaryRectangles = [new f.geom.Rectangle, new f.geom.Rectangle, new f.geom.Rectangle];
|
|
return t;
|
|
}(g.ASNative);
|
|
t.BitmapData = h;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.BitmapDataChannel");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.RED = 1;
|
|
a.GREEN = 2;
|
|
a.BLUE = 4;
|
|
a.ALPHA = 8;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.BitmapDataChannel = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.BitmapEncodingColorSpace");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.COLORSPACE_AUTO = "auto";
|
|
a.COLORSPACE_4_4_4 = "4:4:4";
|
|
a.COLORSPACE_4_2_2 = "4:2:2";
|
|
a.COLORSPACE_4_2_0 = "4:2:0";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.BitmapEncodingColorSpace = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Shumway$$inline_605 = Shumway || (Shumway = {}), AVM2$$inline_606 = Shumway$$inline_605.AVM2 || (Shumway$$inline_605.AVM2 = {}), AS$$inline_607 = AVM2$$inline_606.AS || (AVM2$$inline_606.AS = {}), flash$$inline_608 = AS$$inline_607.flash || (AS$$inline_607.flash = {}), display$$inline_609 = flash$$inline_608.display || (flash$$inline_608.display = {}), display$$inline_610 = flash$$inline_608.display, flash$$inline_611 = AS$$inline_607.flash, AS$$inline_612 = AVM2$$inline_606.AS, AVM2$$inline_613 =
|
|
Shumway$$inline_605.AVM2;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a) {
|
|
k("Dummy Constructor: public flash.display.JPEGEncoderOptions");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.JPEGEncoderOptions = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(t) {
|
|
function s() {
|
|
return q.instance.globals["Shumway.Player.Utils"];
|
|
}
|
|
var m = b.Debug.assert, d = b.Debug.warning, a = b.Debug.assertUnreachable, c = b.Debug.notImplemented, n = b.AVM2.Runtime.throwError, p = b.FileLoadingService, e = b.Telemetry, q = b.AVM2.Runtime.AVM2, l = b.AVM2.ABC.AbcFile, u = f.events, w = f.display.ActionScriptVersion, r = f.system.ApplicationDomain, h = b.Bounds, x;
|
|
(function(a) {
|
|
a[a.Unloaded = 0] = "Unloaded";
|
|
a[a.Opened = 1] = "Opened";
|
|
a[a.Initialized = 2] = "Initialized";
|
|
a[a.Complete = 3] = "Complete";
|
|
})(x || (x = {}));
|
|
var y;
|
|
(function(a) {
|
|
a[a.External = 0] = "External";
|
|
a[a.Bytes = 1] = "Bytes";
|
|
})(y || (y = {}));
|
|
x = function(x) {
|
|
function y() {
|
|
t.DisplayObjectContainer.instanceConstructorNoInitialize.call(this);
|
|
this._writer = new b.IndentingWriter;
|
|
this._content = null;
|
|
this._contentLoaderInfo = new f.display.LoaderInfo;
|
|
this._worker = null;
|
|
this._loadStatus = 0;
|
|
this._contentLoaderInfo._loader = this;
|
|
this._initialDataLoaded = new b.PromiseWrapper;
|
|
this._waitForInitialData = !0;
|
|
this._commitDataQueue = this._initialDataLoaded.promise;
|
|
this._codeExecutionPromise = new b.PromiseWrapper;
|
|
this._progressPromise = new b.PromiseWrapper;
|
|
this._startPromise = Promise.all([this._codeExecutionPromise.promise, this._progressPromise.promise]);
|
|
}
|
|
__extends(y, x);
|
|
y.getRootLoader = function() {
|
|
if (y._rootLoader) {
|
|
return y._rootLoader;
|
|
}
|
|
var a = new f.display.Loader;
|
|
f.display.DisplayObject._instanceID--;
|
|
a._contentLoaderInfo._loader = null;
|
|
a._loadStatus = 1;
|
|
return y._rootLoader = a;
|
|
};
|
|
y.reset = function() {
|
|
y._rootLoader = null;
|
|
};
|
|
y.progress = function() {
|
|
y.FlushCommittedFrames();
|
|
for (var b = y._loadQueue, c = 0;c < b.length;c++) {
|
|
var d = b[c], h = d._contentLoaderInfo, e = h._bytesLoaded, f = h._bytesTotal;
|
|
switch(d._loadStatus) {
|
|
case 0:
|
|
if (!f) {
|
|
break;
|
|
}
|
|
0 === d._loadingType && h.dispatchEvent(u.Event.getInstance(u.Event.OPEN));
|
|
h.dispatchEvent(new u.ProgressEvent(u.ProgressEvent.PROGRESS, !1, !1, 0, f));
|
|
d._loadStatus = 1;
|
|
case 1:
|
|
h._bytesLoadedChanged && (h._bytesLoadedChanged = !1, h.dispatchEvent(new u.ProgressEvent(u.ProgressEvent.PROGRESS, !1, !1, e, f)));
|
|
if (!d._content || !d._content._hasFlags(256)) {
|
|
break;
|
|
}
|
|
d._loadStatus = 2;
|
|
h.dispatchEvent(u.Event.getInstance(u.Event.INIT));
|
|
h._actionScriptVersion === w.ACTIONSCRIPT2 && u.EventDispatcher.broadcastEventDispatchQueue.dispatchEvent(u.Event.getBroadcastInstance(u.Event.AVM1_LOAD));
|
|
case 2:
|
|
e === f && (d._loadStatus = 3, h.dispatchEvent(u.Event.getInstance(u.Event.COMPLETE)));
|
|
break;
|
|
case 3:
|
|
b.splice(c--, 1);
|
|
break;
|
|
default:
|
|
a("Mustn't encounter unhandled status in Loader queue.");
|
|
}
|
|
}
|
|
};
|
|
y.FlushCommittedFrames = function() {
|
|
for (var a = y._commitFrameQueue, b = 0;b < a.length;b++) {
|
|
a[b].loader._commitFrame(a[b].data);
|
|
}
|
|
a.length = 0;
|
|
};
|
|
y.prototype._initFrame = function(a) {
|
|
};
|
|
y.prototype._constructFrame = function() {
|
|
this._constructChildren();
|
|
};
|
|
y.prototype._describeData = function(a) {
|
|
var c = [], d;
|
|
for (d in a) {
|
|
c.push(d + ":" + b.StringUtilities.toSafeString(a[d]));
|
|
}
|
|
return "{" + c.join(", ") + "}";
|
|
};
|
|
y.prototype._commitData = function(a) {
|
|
!this._waitForInitialData || "progress" !== a.command && "image" !== a.command && "error" !== a.command || (this._waitForInitialData = !1, this._initialDataLoaded.resolve(void 0));
|
|
var b = this._commitDataQueue.then(this._commitQueuedData.bind(this, a));
|
|
g.traceLoaderOption.value && this._writer.writeTimeLn("Making for: " + this._describeData(a));
|
|
this._commitDataQueue = b;
|
|
};
|
|
y.prototype._commitQueuedData = function(a) {
|
|
var c = this._contentLoaderInfo, d = a.command, h = null;
|
|
g.traceLoaderOption.value && this._writer.writeTimeLn("Executing Promise: " + this._describeData(a));
|
|
switch(d) {
|
|
case "init":
|
|
d = a.result;
|
|
c.bytesLoaded = d.bytesLoaded;
|
|
c._bytesTotal = d.bytesTotal;
|
|
c._swfVersion = d.swfVersion;
|
|
c._frameRate = d.frameRate;
|
|
var f = d.bbox;
|
|
c._width = f.xMax - f.xMin;
|
|
c._height = f.yMax - f.yMin;
|
|
f = new b.Timeline.SpriteSymbol(0, !0);
|
|
f.numFrames = d.frameCount;
|
|
c.registerSymbol(f);
|
|
d.fileAttributes && d.fileAttributes.doAbc || (c._actionScriptVersion = w.ACTIONSCRIPT2, h = this._initAvm1(), g.traceLoaderOption.value && this._writer.writeTimeLn("Suspending until AVM1 is initialized."));
|
|
break;
|
|
case "progress":
|
|
var d = a.result, f = d.bytesLoaded, n = d.bytesTotal;
|
|
m(f <= n, "Loaded bytes should not exceed total bytes.");
|
|
c.bytesLoaded = f;
|
|
c._bytesTotal ? m(c._bytesTotal === n, "Total bytes should not change.") : c._bytesTotal = n;
|
|
d.open && 0 === this._loadStatus && (this._loadStatus = 1);
|
|
0 !== this._loadStatus && (c.dispatchEvent(new u.ProgressEvent(u.ProgressEvent.PROGRESS, !1, !1, f, n)), this._progressPromise.resolve(void 0), g.traceLoaderOption.value && this._writer.writeTimeLn("Resolving progress promise."));
|
|
break;
|
|
case "complete":
|
|
a.stats && e.instance.reportTelemetry(a.stats);
|
|
this._worker && this._worker.terminate();
|
|
break;
|
|
case "error":
|
|
this._contentLoaderInfo.dispatchEvent(new u.IOErrorEvent(u.IOErrorEvent.IO_ERROR));
|
|
break;
|
|
default:
|
|
if (0 === a.id) {
|
|
break;
|
|
}
|
|
if (a.isSymbol) {
|
|
this._commitAsset(a);
|
|
} else {
|
|
if ("frame" === a.type) {
|
|
if (this._frameAssetsQueue) {
|
|
g.traceLoaderOption.value && this._writer.writeTimeLn("Suspending frame execution until all of its assets are resolved.");
|
|
var k = this, h = Promise.all(this._frameAssetsQueue).then(function() {
|
|
k._enqueueFrame(a);
|
|
k._frameAssetsQueue = null;
|
|
}.bind(this));
|
|
} else {
|
|
this._enqueueFrame(a);
|
|
}
|
|
} else {
|
|
"image" === a.type ? this._commitImage(a) : "abc" === a.type && (d = q.instance.applicationDomain, f = new l(a.data, a.name), a.flags ? d.loadAbc(f) : c._allowCodeExecution && d.executeAbc(f));
|
|
}
|
|
}
|
|
;
|
|
}
|
|
return h;
|
|
};
|
|
y.prototype._initAvm1 = function() {
|
|
var a = this._contentLoaderInfo;
|
|
return this._loaderInfo && this._loaderInfo._avm1Context ? (a._avm1Context = this._loaderInfo._avm1Context, null) : q.instance.loadAVM1().then(function() {
|
|
a._avm1Context = b.AVM1.AVM1Context.create(a.swfVersion);
|
|
});
|
|
};
|
|
y.prototype._commitAsset = function(a) {
|
|
var c = this._contentLoaderInfo, d = a.id, e;
|
|
if (a.updates) {
|
|
a = a.updates, e = c.getSymbolById(d), a.scale9Grid && (e.scale9Grid = h.FromUntyped(a.scale9Grid));
|
|
} else {
|
|
switch(a.type) {
|
|
case "shape":
|
|
e = b.Timeline.ShapeSymbol.FromData(a, c);
|
|
break;
|
|
case "morphshape":
|
|
e = b.Timeline.MorphShapeSymbol.FromData(a, c);
|
|
break;
|
|
case "image":
|
|
var l = e = b.Timeline.BitmapSymbol.FromData(a);
|
|
if (5 === l.type || 6 === l.type || 4 === l.type) {
|
|
this._frameAssetsQueue || (this._frameAssetsQueue = []), this._frameAssetsQueue.push(new Promise(function(a) {
|
|
s().decodeImage(l, a);
|
|
}));
|
|
}
|
|
break;
|
|
case "label":
|
|
;
|
|
case "text":
|
|
e = b.Timeline.TextSymbol.FromTextData(a);
|
|
break;
|
|
case "button":
|
|
e = b.Timeline.ButtonSymbol.FromData(a, c);
|
|
break;
|
|
case "sprite":
|
|
e = b.Timeline.SpriteSymbol.FromData(a, c);
|
|
break;
|
|
case "font":
|
|
e = b.Timeline.FontSymbol.FromData(a);
|
|
d = f.text.Font.initializeFrom(e);
|
|
f.text.Font.instanceConstructorNoInitialize.call(d);
|
|
s().registerFont(d);
|
|
"undefined" !== typeof navigator && 0 > navigator.userAgent.indexOf("Firefox") && (this._frameAssetsQueue || (this._frameAssetsQueue = []), this._frameAssetsQueue.push(new Promise(function(a) {
|
|
setTimeout(a, 400);
|
|
})));
|
|
break;
|
|
case "sound":
|
|
e = b.Timeline.SoundSymbol.FromData(a);
|
|
break;
|
|
case "binary":
|
|
e = b.Timeline.BinarySymbol.FromData(a);
|
|
}
|
|
m(e, "Unknown symbol type.");
|
|
c.registerSymbol(e);
|
|
}
|
|
};
|
|
y.prototype._enqueueFrame = function(a) {
|
|
this === y.getRootLoader() ? (y.runtimeStartTime = Date.now(), this._commitFrame(a), this._codeExecutionPromise.resolve(void 0)) : y._commitFrameQueue.push({loader:this, data:a});
|
|
};
|
|
y.prototype._commitFrame = function(a) {
|
|
var c = this._contentLoaderInfo;
|
|
void 0 !== a.bgcolor && (c._colorRGBA = a.bgcolor);
|
|
if (a.symbolClasses) {
|
|
for (var h = a.symbolClasses, e = q.instance.applicationDomain, l = 0;l < h.length;l++) {
|
|
var n = h[l];
|
|
if (c._allowCodeExecution) {
|
|
var m = c.getSymbolById(n.symbolId);
|
|
m ? (n = e.getClass(n.className), n.defaultInitializerArgument = m, m.symbolClass = n) : d("Symbol " + n.symbolId + " is not defined.");
|
|
}
|
|
}
|
|
}
|
|
if (a.exports && c._actionScriptVersion === w.ACTIONSCRIPT2) {
|
|
for (h = a.exports, l = 0;l < h.length;l++) {
|
|
n = h[l], (m = c.getSymbolById(n.symbolId)) ? c._avm1Context.addAsset(n.className, n.symbolId, m) : d("Symbol " + n.symbolId + " is not defined.");
|
|
}
|
|
}
|
|
for (var h = c.getSymbolById(0), l = h.symbolClass, e = h.frames, m = e.length, n = new b.Timeline.FrameDelta(c, a.commands), k = a.repeat;k--;) {
|
|
e.push(n);
|
|
}
|
|
e = this._content;
|
|
if (!e) {
|
|
e = l.initializeFrom(h);
|
|
f.display.DisplayObject._instanceID--;
|
|
e._name = "root1";
|
|
if (t.MovieClip.isType(e)) {
|
|
if (n = e, a.sceneData) {
|
|
for (var k = a.sceneData.scenes, l = 0, p = k.length;l < p;l++) {
|
|
var r = k[l], s = r.offset;
|
|
n.addScene(r.name, [], s, (l < p - 1 ? k[l + 1].offset : h.numFrames) - s);
|
|
}
|
|
h = a.sceneData.labels;
|
|
for (l = 0;l < h.length;l++) {
|
|
k = h[l], n.addFrameLabel(k.name, k.frame + 1);
|
|
}
|
|
} else {
|
|
n.addScene("Scene 1", [], 0, h.numFrames);
|
|
}
|
|
}
|
|
e._loaderInfo = c;
|
|
c._actionScriptVersion === w.ACTIONSCRIPT2 ? e = this._content = this._initAvm1Root(e) : this._content = e;
|
|
this.addTimelineObjectAtDepth(this._content, 0);
|
|
}
|
|
t.AVM1Movie.isType(e) && (e = e._children[0]);
|
|
t.MovieClip.isType(e) && (l = e, a.labelName && l.addFrameLabel(a.labelName, m + 1), c._actionScriptVersion === w.ACTIONSCRIPT2 && g.avm1lib.getAVM1Object(e).addFrameActionBlocks(m, a), a.soundStream && l._initSoundStream(a.soundStream), a.soundStreamBlock && l._addSoundStreamBlock(m + 1, a.soundStreamBlock));
|
|
};
|
|
y.prototype._initAvm1Root = function(a) {
|
|
if (this._loaderInfo && this._loaderInfo._avm1Context) {
|
|
return a;
|
|
}
|
|
var b = g.avm1lib.getAVM1Object(a), c = this._contentLoaderInfo._avm1Context;
|
|
c.root = b;
|
|
b.context = c;
|
|
a.addEventListener("frameConstructed", c.flushPendingScripts.bind(c), !1, Number.MAX_VALUE);
|
|
c.globals.asSetPublicProperty("_root", b);
|
|
c.globals.asSetPublicProperty("_level0", b);
|
|
c = new f.display.AVM1Movie;
|
|
c.initializeContent(a);
|
|
this._content = c;
|
|
a = this._contentLoaderInfo._parameters;
|
|
for (var d in a) {
|
|
d in b || (b[d] = a[d]);
|
|
}
|
|
return c;
|
|
};
|
|
y.prototype._commitImage = function(a) {
|
|
a = b.Timeline.BitmapSymbol.FromData(a.props);
|
|
var c = f.display.BitmapData.initializeFrom(a);
|
|
f.display.BitmapData.instanceConstructorNoInitialize.call(c);
|
|
this._content = new f.display.Bitmap(c);
|
|
this.addTimelineObjectAtDepth(this._content, 0);
|
|
c = this._contentLoaderInfo;
|
|
c._width = a.width;
|
|
c._height = a.height;
|
|
c.dispatchEvent(u.Event.getInstance(u.Event.INIT));
|
|
c.dispatchEvent(u.Event.getInstance(u.Event.COMPLETE));
|
|
this._loadStatus = 3;
|
|
};
|
|
Object.defineProperty(y.prototype, "content", {get:function() {
|
|
return 0 === this._loadStatus ? null : this._content;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(y.prototype, "contentLoaderInfo", {get:function() {
|
|
return this._contentLoaderInfo;
|
|
}, enumerable:!0, configurable:!0});
|
|
y.prototype._close = function() {
|
|
this._worker && 0 === this._loadStatus && (this._worker.terminate(), this._worker = null);
|
|
};
|
|
y.prototype._unload = function(a, b) {
|
|
2 > this._loadStatus || (this._content = null, this._worker = this._contentLoaderInfo._loader = null, this._loadStatus = 0, this.dispatchEvent(u.Event.getInstance(u.Event.UNLOAD)));
|
|
};
|
|
y.prototype._getJPEGLoaderContextdeblockingfilter = function(a) {
|
|
return f.system.JPEGLoaderContext.isType(a) ? a.deblockingFilter : 0;
|
|
};
|
|
y.prototype._getUncaughtErrorEvents = function() {
|
|
c("public flash.display.Loader::_getUncaughtErrorEvents");
|
|
};
|
|
y.prototype._setUncaughtErrorEvents = function(a) {
|
|
c("public flash.display.Loader::_setUncaughtErrorEvents");
|
|
};
|
|
y.prototype.load = function(a, b) {
|
|
this._contentLoaderInfo._url = a.url;
|
|
this._applyLoaderContext(b, a);
|
|
this._loadingType = 0;
|
|
var c = this._createParsingWorker(), d = this, h = p.instance.createSession();
|
|
h.onprogress = function(a, b) {
|
|
c.postMessage({data:a, progress:b});
|
|
};
|
|
h.onerror = function(a) {
|
|
d._commitData({command:"error", error:a});
|
|
};
|
|
h.onopen = function() {
|
|
c.postMessage("pipe:");
|
|
};
|
|
h.onclose = function() {
|
|
c.postMessage({data:null});
|
|
};
|
|
h.open(a._toFileRequest());
|
|
y._loadQueue.push(this);
|
|
};
|
|
y.prototype.loadBytes = function(a) {
|
|
this._contentLoaderInfo._url = (this.loaderInfo ? this.loaderInfo._url : "") + "/[[DYNAMIC]]/" + ++y._embeddedContentLoadCount;
|
|
this._applyLoaderContext(void 0, null);
|
|
this._loadingType = 1;
|
|
var b = this._createParsingWorker();
|
|
y._loadQueue.push(this);
|
|
b.postMessage("pipe:");
|
|
a = a.bytes;
|
|
b.postMessage({data:a, progress:{bytesLoaded:a.byteLength, bytesTotal:a.byteLength}});
|
|
b.postMessage({data:null});
|
|
};
|
|
y.prototype._applyLoaderContext = function(a, c) {
|
|
var d = {};
|
|
if (a && a.parameters) {
|
|
var h = a.parameters, e;
|
|
for (e in h) {
|
|
var f = h[e];
|
|
b.isString(f) || n("IllegalOperationError", k.Errors.ObjectWithStringsParamError, "LoaderContext.parameters");
|
|
d[e] = f;
|
|
}
|
|
}
|
|
a && a.applicationDomain && (this._contentLoaderInfo._applicationDomain = new r(r.currentDomain));
|
|
this._contentLoaderInfo._parameters = d;
|
|
};
|
|
y.prototype._createParsingWorker = function() {
|
|
var a = this._contentLoaderInfo, c;
|
|
c = !y.WORKERS_AVAILABLE || b.useParsingWorkerOption && !b.useParsingWorkerOption.value ? new b.SWF.ResourceLoader(window, !1) : new Worker("undefined" !== typeof LOADER_WORKER_PATH ? LOADER_WORKER_PATH : SHUMWAY_ROOT + y.LOADER_PATH);
|
|
a._allowCodeExecution || this._codeExecutionPromise.reject("Disabled by _allowCodeExecution");
|
|
this._waitForInitialData || this._initialDataLoaded.resolve(void 0);
|
|
var d = this;
|
|
c.onmessage = function(a) {
|
|
"exception" === a.data.type ? (console.log("error in parser: \n" + a.data.stack), q.instance.exceptions.push({source:"parser", message:a.data.message, stack:a.data.stack})) : d._commitData(a.data);
|
|
};
|
|
return c;
|
|
};
|
|
y._embeddedContentLoadCount = 0;
|
|
y.classInitializer = function() {
|
|
y._rootLoader = null;
|
|
y._loadQueue = [];
|
|
};
|
|
y.initializer = function() {
|
|
t.DisplayObject._advancableInstances.push(this);
|
|
};
|
|
y.classSymbols = null;
|
|
y.instanceSymbols = null;
|
|
y.WORKERS_AVAILABLE = "undefined" !== typeof Worker;
|
|
y.LOADER_PATH = "swf/worker.js";
|
|
y.runtimeStartTime = 0;
|
|
y._commitFrameQueue = [];
|
|
return y;
|
|
}(f.display.DisplayObjectContainer);
|
|
t.Loader = x;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.assert, m = b.Debug.notImplemented, d = b.Debug.somewhatImplemented, a = f.display.ActionScriptVersion, c = function(c) {
|
|
function g() {
|
|
f.events.EventDispatcher.instanceConstructorNoInitialize.call(this);
|
|
this._url = this._loaderURL = "";
|
|
this._isURLInaccessible = !1;
|
|
this._bytesLoaded = 0;
|
|
this._bytesLoadedChanged = !1;
|
|
this._bytesTotal = 0;
|
|
this._applicationDomain = null;
|
|
this._swfVersion = 9;
|
|
this._actionScriptVersion = a.ACTIONSCRIPT3;
|
|
k(this._actionScriptVersion);
|
|
this._frameRate = 24;
|
|
this._parameters = null;
|
|
this._height = this._width = 0;
|
|
this._contentType = "";
|
|
this._childSandboxBridge = this._parentSandboxBridge = this._sharedEvents = null;
|
|
this._parentAllowsChild = this._childAllowsParent = this._sameDomain = !1;
|
|
this._uncaughtErrorEvents = this._bytes = this._content = this._loader = null;
|
|
this._allowCodeExecution = !0;
|
|
this._dictionary = [];
|
|
this._avm1Context = null;
|
|
this._colorRGBA = 4294967295;
|
|
}
|
|
__extends(g, c);
|
|
g.getLoaderInfoByDefinition = function(a) {
|
|
m("public flash.display.LoaderInfo::static getLoaderInfoByDefinition");
|
|
};
|
|
Object.defineProperty(g.prototype, "loaderURL", {get:function() {
|
|
return this._loaderURL;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "url", {get:function() {
|
|
return this._url;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "isURLInaccessible", {get:function() {
|
|
return this._isURLInaccessible;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "bytesLoaded", {get:function() {
|
|
return this._bytesLoaded;
|
|
}, set:function(a) {
|
|
a !== this._bytesLoaded && (this._bytesLoaded = a, this._bytesLoadedChanged = !0);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "bytesTotal", {get:function() {
|
|
return this._bytesTotal;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "applicationDomain", {get:function() {
|
|
d("public flash.display.LoaderInfo::get applicationDomain");
|
|
return f.system.ApplicationDomain.currentDomain;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "swfVersion", {get:function() {
|
|
return this._swfVersion;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "actionScriptVersion", {get:function() {
|
|
return this._actionScriptVersion;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "frameRate", {get:function() {
|
|
return this._frameRate;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "width", {get:function() {
|
|
return this._width / 20 | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "height", {get:function() {
|
|
return this._height / 20 | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "contentType", {get:function() {
|
|
return this._contentType;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "sharedEvents", {get:function() {
|
|
m("public flash.display.LoaderInfo::get sharedEvents");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "parentSandboxBridge", {get:function() {
|
|
m("public flash.display.LoaderInfo::get parentSandboxBridge");
|
|
}, set:function(a) {
|
|
m("public flash.display.LoaderInfo::set parentSandboxBridge");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "childSandboxBridge", {get:function() {
|
|
m("public flash.display.LoaderInfo::get childSandboxBridge");
|
|
}, set:function(a) {
|
|
m("public flash.display.LoaderInfo::set childSandboxBridge");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "sameDomain", {get:function() {
|
|
m("public flash.display.LoaderInfo::get sameDomain");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "childAllowsParent", {get:function() {
|
|
m("public flash.display.LoaderInfo::get childAllowsParent");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "parentAllowsChild", {get:function() {
|
|
m("public flash.display.LoaderInfo::get parentAllowsChild");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "loader", {get:function() {
|
|
return this._loader;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "content", {get:function() {
|
|
return this._loader && this._loader.content;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "bytes", {get:function() {
|
|
m("public flash.display.LoaderInfo::get bytes");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "parameters", {get:function() {
|
|
d("public flash.display.LoaderInfo::get parameters");
|
|
return this._parameters ? b.ObjectUtilities.cloneObject(this._parameters) : {};
|
|
}, enumerable:!0, configurable:!0});
|
|
g.prototype._getUncaughtErrorEvents = function() {
|
|
m("public flash.display.LoaderInfo::_getUncaughtErrorEvents");
|
|
};
|
|
g.prototype._setUncaughtErrorEvents = function(a) {
|
|
m("public flash.display.LoaderInfo::_setUncaughtErrorEvents");
|
|
};
|
|
g.prototype.registerSymbol = function(a) {
|
|
this._dictionary[a.id] = a;
|
|
};
|
|
g.prototype.getSymbolById = function(a) {
|
|
return this._dictionary[a] || null;
|
|
};
|
|
g.classInitializer = null;
|
|
g.initializer = null;
|
|
g.classSymbols = null;
|
|
g.instanceSymbols = null;
|
|
return g;
|
|
}(f.events.EventDispatcher);
|
|
g.LoaderInfo = c;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(g) {
|
|
var k = function(m) {
|
|
function d() {
|
|
g.DisplayObject.instanceConstructorNoInitialize.call(this);
|
|
}
|
|
__extends(d, m);
|
|
d.prototype._canHaveGraphics = function() {
|
|
return!0;
|
|
};
|
|
d.prototype._getGraphics = function() {
|
|
return this._graphics;
|
|
};
|
|
Object.defineProperty(d.prototype, "graphics", {get:function() {
|
|
return this._ensureGraphics();
|
|
}, enumerable:!0, configurable:!0});
|
|
d.classInitializer = null;
|
|
d.initializer = function(a) {
|
|
a ? (this._graphics = a.graphics, this.morphFillBounds = a.morphFillBounds, this.morphLineBounds = a.morphLineBounds) : (this._graphics = new b.display.Graphics, this.morphLineBounds = this.morphFillBounds = null);
|
|
};
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(b.display.DisplayObject);
|
|
g.MorphShape = k;
|
|
})(b.display || (b.display = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.NativeMenu");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.NativeMenu = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.somewhatImplemented, m = function(b) {
|
|
function a() {
|
|
f.events.EventDispatcher.instanceConstructorNoInitialize.call(this);
|
|
this._enabled = !0;
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "enabled", {get:function() {
|
|
k("public flash.display.NativeMenuItem::get enabled");
|
|
return this._enabled;
|
|
}, set:function(a) {
|
|
a = !!a;
|
|
k("public flash.display.NativeMenuItem::set enabled");
|
|
this._enabled = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.NativeMenuItem = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a) {
|
|
k("Dummy Constructor: public flash.display.PNGEncoderOptions");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.PNGEncoderOptions = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.PixelSnapping");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.NEVER;
|
|
case 1:
|
|
return a.ALWAYS;
|
|
case 2:
|
|
return a.AUTO;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.NEVER:
|
|
return 0;
|
|
case a.ALWAYS:
|
|
return 1;
|
|
case a.AUTO:
|
|
return 2;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.NEVER = "never";
|
|
a.ALWAYS = "always";
|
|
a.AUTO = "auto";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.PixelSnapping = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.SWFVersion");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.FLASH1 = 1;
|
|
a.FLASH2 = 2;
|
|
a.FLASH3 = 3;
|
|
a.FLASH4 = 4;
|
|
a.FLASH5 = 5;
|
|
a.FLASH6 = 6;
|
|
a.FLASH7 = 7;
|
|
a.FLASH8 = 8;
|
|
a.FLASH9 = 9;
|
|
a.FLASH10 = 10;
|
|
a.FLASH11 = 11;
|
|
a.FLASH12 = 12;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.SWFVersion = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.AVM2.Runtime.asCoerceString, m = function(b) {
|
|
function a(a, b, d, e) {
|
|
this._name = k(a);
|
|
this._labels = b;
|
|
this.offset = d;
|
|
this._numFrames = e | 0;
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "name", {get:function() {
|
|
return this._name;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "labels", {get:function() {
|
|
return this._labels;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "numFrames", {get:function() {
|
|
return this._numFrames;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.clone = function() {
|
|
var b = this._labels.map(function(a) {
|
|
return a.clone();
|
|
});
|
|
return new a(this._name, b, this.offset, this._numFrames);
|
|
};
|
|
a.prototype.getLabelByName = function(a) {
|
|
for (var b = this._labels, d = 0;d < b.length;d++) {
|
|
var e = b[d];
|
|
if (e.name === a) {
|
|
return e;
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
a.prototype.getLabelByFrame = function(a) {
|
|
for (var b = this._labels, d = 0;d < b.length;d++) {
|
|
var e = b[d];
|
|
if (e.frame === a) {
|
|
return e;
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.Scene = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m;
|
|
(function(b) {
|
|
b[b.None = 0] = "None";
|
|
b[b.Top = 1] = "Top";
|
|
b[b.Bottom = 2] = "Bottom";
|
|
b[b.Left = 4] = "Left";
|
|
b[b.Right = 8] = "Right";
|
|
})(m || (m = {}));
|
|
m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.StageAlign");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(a) {
|
|
if (0 === a) {
|
|
return "";
|
|
}
|
|
var b = "";
|
|
a & 1 && (b += "T");
|
|
a & 2 && (b += "B");
|
|
a & 4 && (b += "L");
|
|
a & 8 && (b += "R");
|
|
return b;
|
|
};
|
|
a.toNumber = function(a) {
|
|
var b = 0;
|
|
a = a.toUpperCase();
|
|
0 <= a.indexOf("T") && (b |= 1);
|
|
0 <= a.indexOf("B") && (b |= 2);
|
|
0 <= a.indexOf("L") && (b |= 4);
|
|
0 <= a.indexOf("R") && (b |= 8);
|
|
return b;
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.TOP = "T";
|
|
a.LEFT = "L";
|
|
a.BOTTOM = "B";
|
|
a.RIGHT = "R";
|
|
a.TOP_LEFT = "TL";
|
|
a.TOP_RIGHT = "TR";
|
|
a.BOTTOM_LEFT = "BL";
|
|
a.BOTTOM_RIGHT = "BR";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.StageAlign = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.StageDisplayState");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.FULL_SCREEN;
|
|
case 1:
|
|
return a.FULL_SCREEN_INTERACTIVE;
|
|
case 2:
|
|
return a.NORMAL;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.FULL_SCREEN:
|
|
return 0;
|
|
case a.FULL_SCREEN_INTERACTIVE:
|
|
return 1;
|
|
case a.NORMAL:
|
|
return 2;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.FULL_SCREEN = "fullScreen";
|
|
a.FULL_SCREEN_INTERACTIVE = "fullScreenInteractive";
|
|
a.NORMAL = "normal";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.StageDisplayState = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.StageQuality");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.LOW;
|
|
case 1:
|
|
return a.MEDIUM;
|
|
case 2:
|
|
return a.HIGH;
|
|
case 3:
|
|
return a.BEST;
|
|
case 4:
|
|
return a.HIGH_8X8;
|
|
case 5:
|
|
return a.HIGH_8X8_LINEAR;
|
|
case 6:
|
|
return a.HIGH_16X16;
|
|
case 7:
|
|
return a.HIGH_16X16_LINEAR;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.LOW:
|
|
return 0;
|
|
case a.MEDIUM:
|
|
return 1;
|
|
case a.HIGH:
|
|
return 2;
|
|
case a.BEST:
|
|
return 3;
|
|
case a.HIGH_8X8:
|
|
return 4;
|
|
case a.HIGH_8X8_LINEAR:
|
|
return 5;
|
|
case a.HIGH_16X16:
|
|
return 6;
|
|
case a.HIGH_16X16_LINEAR:
|
|
return 7;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.LOW = "low";
|
|
a.MEDIUM = "medium";
|
|
a.HIGH = "high";
|
|
a.BEST = "best";
|
|
a.HIGH_8X8 = "8x8";
|
|
a.HIGH_8X8_LINEAR = "8x8linear";
|
|
a.HIGH_16X16 = "16x16";
|
|
a.HIGH_16X16_LINEAR = "16x16linear";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.StageQuality = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.StageScaleMode");
|
|
}
|
|
__extends(a, b);
|
|
a.fromNumber = function(b) {
|
|
switch(b) {
|
|
case 0:
|
|
return a.SHOW_ALL;
|
|
case 1:
|
|
return a.EXACT_FIT;
|
|
case 2:
|
|
return a.NO_BORDER;
|
|
case 4:
|
|
return a.NO_SCALE;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
a.toNumber = function(b) {
|
|
switch(b) {
|
|
case a.SHOW_ALL:
|
|
return 0;
|
|
case a.EXACT_FIT:
|
|
return 1;
|
|
case a.NO_BORDER:
|
|
return 2;
|
|
case a.NO_SCALE:
|
|
return 3;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.SHOW_ALL = "showAll";
|
|
a.EXACT_FIT = "exactFit";
|
|
a.NO_BORDER = "noBorder";
|
|
a.NO_SCALE = "noScale";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.StageScaleMode = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.display.TriangleCulling");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.NONE = "none";
|
|
a.POSITIVE = "positive";
|
|
a.NEGATIVE = "negative";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.TriangleCulling = m;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.Debug.assert, d = function(a) {
|
|
function b() {
|
|
f.display.DisplayObject.instanceConstructorNoInitialize.call(this);
|
|
this._children = [];
|
|
this._constructed = !1;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.initializeContent = function(a) {
|
|
m(0 === this._children.length);
|
|
m(!this._parent, "Must have content initialized before being added to stage");
|
|
this._children[0] = this._content = a;
|
|
a._setParent(this, 0);
|
|
this._setDirtyFlags(2097152);
|
|
this._invalidateFillAndLineBounds(!0, !0);
|
|
g.DisplayObject._advancableInstances.push(this);
|
|
};
|
|
b.prototype.call = function(a) {
|
|
k("AVM1Movie#call");
|
|
};
|
|
b.prototype.addCallback = function(a, b) {
|
|
k("AVM1Movie#call");
|
|
};
|
|
b.prototype._initFrame = function(a) {
|
|
};
|
|
b.prototype._constructFrame = function() {
|
|
this._constructed || (this._constructed = !0, g.DisplayObjectContainer.prototype._constructChildren.call(this));
|
|
this._content._constructFrame();
|
|
};
|
|
b.prototype._enqueueFrameScripts = function() {
|
|
this._removeFlags(8192);
|
|
this._content._enqueueFrameScripts();
|
|
};
|
|
b.prototype._propagateFlagsDown = function(a) {
|
|
this._hasFlags(a) || (this._setFlags(a), this._content._propagateFlagsDown(a));
|
|
};
|
|
b.prototype._containsPoint = function(a, b, c, d, f, g) {
|
|
return 3 === f ? this._content._containsPoint(a, b, c, d, f, g) : 0 === f && this._getContentBounds().contains(c, d) ? 1 : 0;
|
|
};
|
|
b.prototype._getChildBounds = function(a, b) {
|
|
var c = this._content._getContentBounds(b).clone();
|
|
this._getConcatenatedMatrix().transformBounds(c);
|
|
a.unionInPlace(c);
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(f.display.DisplayObject);
|
|
g.AVM1Movie = d;
|
|
})(f.display || (f.display = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.ObjectUtilities.createEmptyObject, a = b.Telemetry, c = b.AVM2.Runtime.forEachPublicProperty, n = b.ExternalInterfaceService, p = function(b) {
|
|
function f() {
|
|
k("Dummy Constructor: public flash.external.ExternalInterface");
|
|
}
|
|
__extends(f, b);
|
|
f._getAvailable = function() {
|
|
return n.instance.enabled;
|
|
};
|
|
f._initJS = function() {
|
|
f.initialized || (a.instance.reportTelemetry({topic:"feature", feature:1}), f.initialized = !0, n.instance.initJS(f._callIn));
|
|
};
|
|
f._callIn = function(a, b) {
|
|
var c = f.registeredCallbacks[a];
|
|
if (c) {
|
|
return c(a, b);
|
|
}
|
|
};
|
|
f._getPropNames = function(a) {
|
|
var b = [];
|
|
c(a, function(a) {
|
|
b.push(a);
|
|
}, null);
|
|
return b;
|
|
};
|
|
f._addCallback = function(a, b, c) {
|
|
c ? (n.instance.unregisterCallback(a), delete f.registeredCallbacks[a]) : (n.instance.registerCallback(a), f.registeredCallbacks[a] = b);
|
|
};
|
|
f._evalJS = function(a) {
|
|
a = m(a);
|
|
return n.instance.eval(a);
|
|
};
|
|
f._callOut = function(a) {
|
|
a = m(a);
|
|
return n.instance.call(a);
|
|
};
|
|
Object.defineProperty(f, "available", {get:function() {
|
|
return f._getAvailable();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f, "objectID", {get:function() {
|
|
return n.instance.getId();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f, "activeX", {get:function() {
|
|
return!1;
|
|
}, enumerable:!0, configurable:!0});
|
|
f.classInitializer = null;
|
|
f.initializer = null;
|
|
f.classSymbols = null;
|
|
f.instanceSymbols = null;
|
|
f.initialized = !1;
|
|
f.registeredCallbacks = d();
|
|
return f;
|
|
}(g.ASNative);
|
|
f.ExternalInterface = p;
|
|
})(f.external || (f.external = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.LOW = 1;
|
|
d.MEDIUM = 2;
|
|
d.HIGH = 3;
|
|
return d;
|
|
}(b.ASNative);
|
|
f.BitmapFilterQuality = k;
|
|
})(f.filters || (f.filters = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.INNER = "inner";
|
|
d.OUTER = "outer";
|
|
d.FULL = "full";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.BitmapFilterType = k;
|
|
})(f.filters || (f.filters = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
}
|
|
__extends(d, b);
|
|
d._updateBlurBounds = function(a, b, f, g, e) {
|
|
"undefined" === typeof e && (e = !1);
|
|
g = d.blurFilterStepWidths[g - 1];
|
|
e && (e = g / 4, b -= e, f -= e);
|
|
a.inflate(Math.ceil((1 > b ? 1 : b) * g), Math.ceil((1 > f ? 1 : f) * g));
|
|
};
|
|
d.prototype._updateFilterBounds = function(a) {
|
|
};
|
|
d.prototype._serialize = function(a) {
|
|
a.writeInt(-1);
|
|
};
|
|
d.prototype.clone = function() {
|
|
return null;
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.EPS = 1E-9;
|
|
d.blurFilterStepWidths = [.5, 1.05, 1.35, 1.55, 1.75, 1.9, 2, 2.1, 2.2, 2.3, 2.5, 3, 3, 3.5, 3.5];
|
|
return d;
|
|
}(g.ASNative);
|
|
f.BitmapFilter = k;
|
|
k = function() {
|
|
function f() {
|
|
}
|
|
f.sanitize = function(d, a, c) {
|
|
if (b.isNullOrUndefined(d) || 0 === d.length) {
|
|
this.colors = [], this.alphas = [], this.ratios = [];
|
|
} else {
|
|
var f;
|
|
b.isNullOrUndefined(c) ? (this.colors = this.sanitizeColors(d), f = this.colors.length, this.ratios = this.initArray(f), b.isNullOrUndefined(a) ? this.alphas = this.initArray(f) : this.alphas = this.sanitizeAlphas(a, f, f, 1)) : 0 === c.length ? (this.colors = [], this.alphas = [], this.ratios = []) : (f = Math.min(d.length, c.length, 16), this.colors = this.sanitizeColors(d, f), this.ratios = this.sanitizeRatios(c, f), b.isNullOrUndefined(a) ? this.alphas = this.initArray(f) : this.alphas =
|
|
this.sanitizeAlphas(a, f, f, 1));
|
|
}
|
|
};
|
|
f.sanitizeColors = function(b, a) {
|
|
"undefined" === typeof a && (a = 16);
|
|
for (var c = [], f = 0, g = Math.min(b.length, a);f < g;f++) {
|
|
c[f] = b[f] >>> 0 & 16777215;
|
|
}
|
|
return c;
|
|
};
|
|
f.sanitizeAlphas = function(d, a, c, f) {
|
|
"undefined" === typeof a && (a = 16);
|
|
"undefined" === typeof c && (c = 0);
|
|
"undefined" === typeof f && (f = 0);
|
|
var g = [], e = 0;
|
|
for (a = Math.min(d.length, a);e < a;e++) {
|
|
g[e] = b.NumberUtilities.clamp(+d[e], 0, 1);
|
|
}
|
|
for (;e < c;) {
|
|
g[e++] = f;
|
|
}
|
|
return g;
|
|
};
|
|
f.sanitizeRatios = function(d, a, c) {
|
|
var f;
|
|
"undefined" === typeof a && (a = 16);
|
|
"undefined" === typeof c && (c = 0);
|
|
"undefined" === typeof f && (f = 0);
|
|
var g = [], e = 0;
|
|
for (a = Math.min(d.length, a);e < a;e++) {
|
|
g[e] = b.NumberUtilities.clamp(+d[e], 0, 255);
|
|
}
|
|
for (;e < c;) {
|
|
g[e++] = f;
|
|
}
|
|
return g;
|
|
};
|
|
f.initArray = function(b) {
|
|
var a;
|
|
"undefined" === typeof a && (a = 0);
|
|
for (var c = Array(b), f = 0;f < b;f++) {
|
|
c[f] = a;
|
|
}
|
|
return c;
|
|
};
|
|
return f;
|
|
}();
|
|
f.GradientArrays = k;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = b.AVM2.Runtime.asCoerceString, m = b.Debug.assert, d = function(a) {
|
|
function c(a, b, c, d, f, g, m, k, h, s, t, G) {
|
|
"undefined" === typeof a && (a = 4);
|
|
"undefined" === typeof b && (b = 45);
|
|
"undefined" === typeof c && (c = 16777215);
|
|
"undefined" === typeof d && (d = 1);
|
|
"undefined" === typeof f && (f = 0);
|
|
"undefined" === typeof g && (g = 1);
|
|
"undefined" === typeof m && (m = 4);
|
|
"undefined" === typeof k && (k = 4);
|
|
"undefined" === typeof h && (h = 1);
|
|
"undefined" === typeof s && (s = 1);
|
|
"undefined" === typeof t && (t = "inner");
|
|
"undefined" === typeof G && (G = !1);
|
|
this.distance = a;
|
|
this.angle = b;
|
|
this.highlightColor = c;
|
|
this.highlightAlpha = d;
|
|
this.shadowColor = f;
|
|
this.shadowAlpha = g;
|
|
this.blurX = m;
|
|
this.blurY = k;
|
|
this.strength = h;
|
|
this.quality = s;
|
|
this.type = t;
|
|
this.knockout = G;
|
|
}
|
|
__extends(c, a);
|
|
c.FromUntyped = function(a) {
|
|
var b = a.highlightColor >>> 8, d = (a.highlightColor & 255) / 255;
|
|
m(a.colors && 1 === a.colors.length, "colors must be Array of length 1");
|
|
var g = a.colors[0] >>> 8, l = (a.colors[0] & 255) / 255, k = f.filters.BitmapFilterType.OUTER;
|
|
a.onTop ? k = f.filters.BitmapFilterType.FULL : a.inner && (k = f.filters.BitmapFilterType.INNER);
|
|
return new c(a.distance, 180 * a.angle / Math.PI, b, d, g, l, a.blurX, a.blurY, a.strength, a.quality, k, a.knockout);
|
|
};
|
|
c.prototype._updateFilterBounds = function(a) {
|
|
if (this.type !== g.BitmapFilterType.INNER && (g.BitmapFilter._updateBlurBounds(a, this._blurX, this._blurY, this._quality), 0 !== this._distance)) {
|
|
var b = this._angle * Math.PI / 180;
|
|
a.x += Math.floor(Math.cos(b) * this._distance);
|
|
a.y += Math.floor(Math.sin(b) * this._distance);
|
|
0 < a.left && (a.left = 0);
|
|
0 < a.top && (a.top = 0);
|
|
}
|
|
};
|
|
Object.defineProperty(c.prototype, "distance", {get:function() {
|
|
return this._distance;
|
|
}, set:function(a) {
|
|
this._distance = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "angle", {get:function() {
|
|
return this._angle;
|
|
}, set:function(a) {
|
|
this._angle = +a % 360;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "highlightColor", {get:function() {
|
|
return this._highlightColor;
|
|
}, set:function(a) {
|
|
this._highlightColor = a >>> 0 & 16777215;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "highlightAlpha", {get:function() {
|
|
return this._highlightAlpha;
|
|
}, set:function(a) {
|
|
this._highlightAlpha = b.NumberUtilities.clamp(+a, 0, 1);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "shadowColor", {get:function() {
|
|
return this._shadowColor;
|
|
}, set:function(a) {
|
|
this._shadowColor = a >>> 0 & 16777215;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "shadowAlpha", {get:function() {
|
|
return this._shadowAlpha;
|
|
}, set:function(a) {
|
|
this._shadowAlpha = b.NumberUtilities.clamp(+a, 0, 1);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "blurX", {get:function() {
|
|
return this._blurX;
|
|
}, set:function(a) {
|
|
this._blurX = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "blurY", {get:function() {
|
|
return this._blurY;
|
|
}, set:function(a) {
|
|
this._blurY = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "knockout", {get:function() {
|
|
return this._knockout;
|
|
}, set:function(a) {
|
|
this._knockout = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "quality", {get:function() {
|
|
return this._quality;
|
|
}, set:function(a) {
|
|
this._quality = b.NumberUtilities.clamp(a | 0, 0, 15);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "strength", {get:function() {
|
|
return this._strength;
|
|
}, set:function(a) {
|
|
this._strength = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "type", {get:function() {
|
|
return this._type;
|
|
}, set:function(a) {
|
|
a = s(a);
|
|
null === a ? k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "type") : this._type = a === g.BitmapFilterType.INNER || a === g.BitmapFilterType.OUTER ? a : g.BitmapFilterType.FULL;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.clone = function() {
|
|
return new c(this._distance, this._angle, this._highlightColor, this._highlightAlpha, this._shadowColor, this._shadowAlpha, this._blurX, this._blurY, this._strength, this._quality, this._type, this._knockout);
|
|
};
|
|
c.classInitializer = null;
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
return c;
|
|
}(f.filters.BitmapFilter);
|
|
g.BevelFilter = d;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = function(f) {
|
|
function d(a, b, d) {
|
|
"undefined" === typeof a && (a = 4);
|
|
"undefined" === typeof b && (b = 4);
|
|
"undefined" === typeof d && (d = 1);
|
|
this.blurX = a;
|
|
this.blurY = b;
|
|
this.quality = d;
|
|
}
|
|
__extends(d, f);
|
|
d.FromUntyped = function(a) {
|
|
return new d(a.blurX, a.blurY, a.quality);
|
|
};
|
|
d.prototype._updateFilterBounds = function(a) {
|
|
g.BitmapFilter._updateBlurBounds(a, this._blurX, this._blurY, this._quality, !0);
|
|
};
|
|
d.prototype._serialize = function(a) {
|
|
a.ensureAdditionalCapacity(16);
|
|
a.writeIntUnsafe(1);
|
|
a.writeFloatUnsafe(this._blurX);
|
|
a.writeFloatUnsafe(this._blurY);
|
|
a.writeIntUnsafe(this._quality);
|
|
};
|
|
Object.defineProperty(d.prototype, "blurX", {get:function() {
|
|
return this._blurX;
|
|
}, set:function(a) {
|
|
this._blurX = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "blurY", {get:function() {
|
|
return this._blurY;
|
|
}, set:function(a) {
|
|
this._blurY = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "quality", {get:function() {
|
|
return this._quality;
|
|
}, set:function(a) {
|
|
this._quality = b.NumberUtilities.clamp(a | 0, 0, 15);
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.clone = function() {
|
|
return new d(this._blurX, this._blurY, this._quality);
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(f.filters.BitmapFilter);
|
|
g.BlurFilter = k;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = function(f) {
|
|
function d(a) {
|
|
"undefined" === typeof a && (a = null);
|
|
a ? this.matrix = a : this._matrix = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
|
|
}
|
|
__extends(d, f);
|
|
d.FromUntyped = function(a) {
|
|
return new d(a.matrix);
|
|
};
|
|
d.prototype._serialize = function(a) {
|
|
var b = this._matrix;
|
|
a.ensureAdditionalCapacity(4 * (b.length + 1));
|
|
a.writeIntUnsafe(6);
|
|
for (var d = 0;d < b.length;d++) {
|
|
a.writeFloatUnsafe(b[d]);
|
|
}
|
|
};
|
|
Object.defineProperty(d.prototype, "matrix", {get:function() {
|
|
return this._matrix.concat();
|
|
}, set:function(a) {
|
|
if (b.isNullOrUndefined(a)) {
|
|
k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "matrix");
|
|
} else {
|
|
for (var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], d = 0, f = Math.min(a.length, 20);d < f;d++) {
|
|
c[d] = b.toNumber(a[d]);
|
|
}
|
|
this._matrix = c;
|
|
}
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.clone = function() {
|
|
return new d(this.matrix);
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(f.filters.BitmapFilter);
|
|
g.ColorMatrixFilter = s;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = function(f) {
|
|
function d(a, b, d, f, e, g, l, m, k) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = 0);
|
|
"undefined" === typeof d && (d = null);
|
|
"undefined" === typeof f && (f = 1);
|
|
"undefined" === typeof e && (e = 0);
|
|
"undefined" === typeof g && (g = !0);
|
|
"undefined" === typeof l && (l = !0);
|
|
"undefined" === typeof m && (m = 0);
|
|
"undefined" === typeof k && (k = 0);
|
|
this.matrixX = a;
|
|
this.matrixY = b;
|
|
d ? this.matrix = d : this._matrix = this._expandArray([], this._matrixX * this._matrixY);
|
|
this.divisor = f;
|
|
this.bias = e;
|
|
this.preserveAlpha = g;
|
|
this.clamp = l;
|
|
this.color = m;
|
|
this.alpha = k;
|
|
}
|
|
__extends(d, f);
|
|
d.FromUntyped = function(a) {
|
|
return new d(a.matrixX, a.matrixY, a.matrix, a.divisor, a.bias, a.preserveAlpha, a.clamp, a.color >>> 8, (a.color & 255) / 255);
|
|
};
|
|
d.prototype._expandArray = function(a, b) {
|
|
if (a) {
|
|
for (var d = a.length;d < b;) {
|
|
a[d++] = 0;
|
|
}
|
|
}
|
|
return a;
|
|
};
|
|
Object.defineProperty(d.prototype, "matrix", {get:function() {
|
|
return this._matrix.slice(0, this._matrixX * this._matrixY);
|
|
}, set:function(a) {
|
|
if (b.isNullOrUndefined(a)) {
|
|
k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "matrix");
|
|
} else {
|
|
for (var c = this._matrixX * this._matrixY, d = Math.min(a.length, c), f = Array(d), e = 0;e < d;e++) {
|
|
f[e] = b.toNumber(a[e]);
|
|
}
|
|
this._expandArray(f, c);
|
|
this._matrix = f;
|
|
}
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "matrixX", {get:function() {
|
|
return this._matrixX;
|
|
}, set:function(a) {
|
|
a = b.NumberUtilities.clamp(+a, 0, 15) | 0;
|
|
this._matrixX !== a && (this._matrixX = a, this._expandArray(this._matrix, a * this._matrixY));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "matrixY", {get:function() {
|
|
return this._matrixY;
|
|
}, set:function(a) {
|
|
a = b.NumberUtilities.clamp(+a, 0, 15) | 0;
|
|
this._matrixY !== a && (this._matrixY = a, this._expandArray(this._matrix, a * this._matrixX));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "divisor", {get:function() {
|
|
return this._divisor;
|
|
}, set:function(a) {
|
|
this._divisor = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "bias", {get:function() {
|
|
return this._bias;
|
|
}, set:function(a) {
|
|
this._bias = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "preserveAlpha", {get:function() {
|
|
return this._preserveAlpha;
|
|
}, set:function(a) {
|
|
this._preserveAlpha = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "clamp", {get:function() {
|
|
return this._clamp;
|
|
}, set:function(a) {
|
|
this._clamp = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "color", {get:function() {
|
|
return this._color;
|
|
}, set:function(a) {
|
|
this._color = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "alpha", {get:function() {
|
|
return this._alpha;
|
|
}, set:function(a) {
|
|
this._alpha = b.NumberUtilities.clamp(+a, 0, 1);
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.clone = function() {
|
|
return new d(this._matrixX, this._matrixY, this.matrix, this._divisor, this._bias, this._preserveAlpha, this._clamp, this._color, this._alpha);
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(f.filters.BitmapFilter);
|
|
g.ConvolutionFilter = s;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.filters.DisplacementMapFilterMode");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.WRAP = "wrap";
|
|
a.CLAMP = "clamp";
|
|
a.IGNORE = "ignore";
|
|
a.COLOR = "color";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.DisplacementMapFilterMode = m;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.somewhatImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b(a, c, d, f, l, g, m, k, h) {
|
|
"undefined" === typeof a && (a = null);
|
|
"undefined" === typeof c && (c = null);
|
|
"undefined" === typeof d && (d = 0);
|
|
"undefined" === typeof f && (f = 0);
|
|
"undefined" === typeof l && (l = 0);
|
|
"undefined" === typeof g && (g = 0);
|
|
"undefined" === typeof m && (m = "wrap");
|
|
"undefined" === typeof k && (k = 0);
|
|
"undefined" === typeof h && (h = 0);
|
|
this.mapBitmap = a;
|
|
this.mapPoint = c;
|
|
this.componentX = d;
|
|
this.componentY = f;
|
|
this.scaleX = l;
|
|
this.scaleY = g;
|
|
this.mode = m;
|
|
this.color = k;
|
|
this.alpha = h;
|
|
}
|
|
__extends(b, a);
|
|
b.FromUntyped = function(a) {
|
|
return new b(a.mapBitmap, a.mapPoint, a.componentX, a.componentY, a.scaleX, a.scaleY, a.mode, a.color, a.alpha);
|
|
};
|
|
Object.defineProperty(b.prototype, "mapBitmap", {get:function() {
|
|
k("public flash.filters.DisplacementMapFilter::get mapBitmap");
|
|
return this._mapBitmap;
|
|
}, set:function(a) {
|
|
k("public flash.filters.DisplacementMapFilter::set mapBitmap");
|
|
this._mapBitmap = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "mapPoint", {get:function() {
|
|
k("public flash.filters.DisplacementMapFilter::get mapPoint");
|
|
return this._mapPoint;
|
|
}, set:function(a) {
|
|
k("public flash.filters.DisplacementMapFilter::set mapPoint");
|
|
this._mapPoint = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "componentX", {get:function() {
|
|
return this._componentX;
|
|
}, set:function(a) {
|
|
k("public flash.filters.DisplacementMapFilter::set componentX");
|
|
this._componentX = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "componentY", {get:function() {
|
|
return this._componentY;
|
|
}, set:function(a) {
|
|
k("public flash.filters.DisplacementMapFilter::set componentY");
|
|
this._componentY = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "scaleX", {get:function() {
|
|
return this._scaleX;
|
|
}, set:function(a) {
|
|
k("public flash.filters.DisplacementMapFilter::set scaleX");
|
|
this._scaleX = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "scaleY", {get:function() {
|
|
return this._scaleY;
|
|
}, set:function(a) {
|
|
k("public flash.filters.DisplacementMapFilter::set scaleY");
|
|
this._scaleY = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "mode", {get:function() {
|
|
return this._mode;
|
|
}, set:function(a) {
|
|
k("public flash.filters.DisplacementMapFilter::set mode");
|
|
this._mode = m(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "color", {get:function() {
|
|
return this._color;
|
|
}, set:function(a) {
|
|
k("public flash.filters.DisplacementMapFilter::set color");
|
|
this._color = a >>> 0 & 16777215;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "alpha", {get:function() {
|
|
return this._alpha;
|
|
}, set:function(a) {
|
|
k("public flash.filters.DisplacementMapFilter::set alpha");
|
|
this._alpha = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.clone = function() {
|
|
return new b(this._mapBitmap, this._mapPoint, this._componentX, this._componentY, this._scaleX, this._scaleY, this._mode, this._color, this._alpha);
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(f.filters.BitmapFilter);
|
|
g.DisplacementMapFilter = d;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.assert, m = function(d) {
|
|
function a(a, b, d, e, f, l, g, m, k, h, s) {
|
|
"undefined" === typeof a && (a = 4);
|
|
"undefined" === typeof b && (b = 45);
|
|
"undefined" === typeof d && (d = 0);
|
|
"undefined" === typeof e && (e = 1);
|
|
"undefined" === typeof f && (f = 4);
|
|
"undefined" === typeof l && (l = 4);
|
|
"undefined" === typeof g && (g = 1);
|
|
"undefined" === typeof m && (m = 1);
|
|
"undefined" === typeof k && (k = !1);
|
|
"undefined" === typeof h && (h = !1);
|
|
"undefined" === typeof s && (s = !1);
|
|
this.distance = a;
|
|
this.angle = b;
|
|
this.color = d;
|
|
this.alpha = e;
|
|
this.blurX = f;
|
|
this.blurY = l;
|
|
this.strength = g;
|
|
this.quality = m;
|
|
this.inner = k;
|
|
this.knockout = h;
|
|
this.hideObject = s;
|
|
}
|
|
__extends(a, d);
|
|
a.FromUntyped = function(b) {
|
|
k(b.colors && 1 === b.colors.length, "colors must be Array of length 1");
|
|
return new a(b.distance, 180 * b.angle / Math.PI, b.colors[0] >>> 8, (b.colors[0] & 255) / 255, b.blurX, b.blurY, b.strength, b.quality, b.inner, b.knockout, !b.compositeSource);
|
|
};
|
|
a.prototype._updateFilterBounds = function(a) {
|
|
if (!this.inner && (g.BitmapFilter._updateBlurBounds(a, this._blurX, this._blurY, this._quality), 0 !== this._distance)) {
|
|
var b = this._angle * Math.PI / 180;
|
|
a.x += Math.floor(Math.cos(b) * this._distance);
|
|
a.y += Math.floor(Math.sin(b) * this._distance);
|
|
0 < a.left && (a.left = 0);
|
|
0 < a.top && (a.top = 0);
|
|
}
|
|
};
|
|
a.prototype._serialize = function(a) {
|
|
a.ensureAdditionalCapacity(48);
|
|
a.writeIntUnsafe(0);
|
|
a.writeFloatUnsafe(this._alpha);
|
|
a.writeFloatUnsafe(this._angle);
|
|
a.writeFloatUnsafe(this._blurX);
|
|
a.writeFloatUnsafe(this._blurY);
|
|
a.writeIntUnsafe(this._color);
|
|
a.writeFloatUnsafe(this._distance);
|
|
a.writeIntUnsafe(this._hideObject);
|
|
a.writeIntUnsafe(this._inner);
|
|
a.writeIntUnsafe(this._knockout);
|
|
a.writeIntUnsafe(this._quality);
|
|
a.writeFloatUnsafe(this._strength);
|
|
};
|
|
Object.defineProperty(a.prototype, "distance", {get:function() {
|
|
return this._distance;
|
|
}, set:function(a) {
|
|
this._distance = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "angle", {get:function() {
|
|
return this._angle;
|
|
}, set:function(a) {
|
|
this._angle = +a % 360;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "color", {get:function() {
|
|
return this._color;
|
|
}, set:function(a) {
|
|
this._color = a >>> 0 & 16777215;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "alpha", {get:function() {
|
|
return this._alpha;
|
|
}, set:function(a) {
|
|
this._alpha = b.NumberUtilities.clamp(+a, 0, 1);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "blurX", {get:function() {
|
|
return this._blurX;
|
|
}, set:function(a) {
|
|
this._blurX = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "blurY", {get:function() {
|
|
return this._blurY;
|
|
}, set:function(a) {
|
|
this._blurY = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "hideObject", {get:function() {
|
|
return this._hideObject;
|
|
}, set:function(a) {
|
|
this._hideObject = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "inner", {get:function() {
|
|
return this._inner;
|
|
}, set:function(a) {
|
|
this._inner = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "knockout", {get:function() {
|
|
return this._knockout;
|
|
}, set:function(a) {
|
|
this._knockout = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "quality", {get:function() {
|
|
return this._quality;
|
|
}, set:function(a) {
|
|
this._quality = b.NumberUtilities.clamp(a | 0, 0, 15);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "strength", {get:function() {
|
|
return this._strength;
|
|
}, set:function(a) {
|
|
this._strength = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.clone = function() {
|
|
return new a(this._distance, this._angle, this._color, this._alpha, this._blurX, this._blurY, this._strength, this._quality, this._inner, this._knockout, this._hideObject);
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.filters.BitmapFilter);
|
|
g.DropShadowFilter = m;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.assert, m = function(d) {
|
|
function a(a, b, d, e, f, l, g, m) {
|
|
"undefined" === typeof a && (a = 16711680);
|
|
"undefined" === typeof b && (b = 1);
|
|
"undefined" === typeof d && (d = 6);
|
|
"undefined" === typeof e && (e = 6);
|
|
"undefined" === typeof f && (f = 2);
|
|
"undefined" === typeof l && (l = 1);
|
|
"undefined" === typeof g && (g = !1);
|
|
"undefined" === typeof m && (m = !1);
|
|
this.color = a;
|
|
this.alpha = b;
|
|
this.blurX = d;
|
|
this.blurY = e;
|
|
this.strength = f;
|
|
this.quality = l;
|
|
this.inner = g;
|
|
this.knockout = m;
|
|
}
|
|
__extends(a, d);
|
|
a.FromUntyped = function(b) {
|
|
k(b.colors && 1 === b.colors.length, "colors must be Array of length 1");
|
|
return new a(b.colors[0] >>> 8, (b.colors[0] & 255) / 255, b.blurX, b.blurY, b.strength, b.quality, b.inner, b.knockout);
|
|
};
|
|
a.prototype._updateFilterBounds = function(a) {
|
|
g.BitmapFilter._updateBlurBounds(a, this._blurX, this._blurY, this._quality);
|
|
};
|
|
a.prototype._serialize = function(a) {
|
|
a.ensureAdditionalCapacity(36);
|
|
a.writeIntUnsafe(2);
|
|
a.writeFloatUnsafe(this._alpha);
|
|
a.writeFloatUnsafe(this._blurX);
|
|
a.writeFloatUnsafe(this._blurY);
|
|
a.writeIntUnsafe(this._color);
|
|
a.writeIntUnsafe(this._inner);
|
|
a.writeIntUnsafe(this._knockout);
|
|
a.writeIntUnsafe(this._quality);
|
|
a.writeFloatUnsafe(this._strength);
|
|
};
|
|
Object.defineProperty(a.prototype, "color", {get:function() {
|
|
return this._color;
|
|
}, set:function(a) {
|
|
this._color = a >>> 0 & 16777215;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "alpha", {get:function() {
|
|
return this._alpha;
|
|
}, set:function(a) {
|
|
this._alpha = b.NumberUtilities.clamp(+a, 0, 1);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "blurX", {get:function() {
|
|
return this._blurX;
|
|
}, set:function(a) {
|
|
this._blurX = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "blurY", {get:function() {
|
|
return this._blurY;
|
|
}, set:function(a) {
|
|
this._blurY = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "inner", {get:function() {
|
|
return this._inner;
|
|
}, set:function(a) {
|
|
this._inner = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "knockout", {get:function() {
|
|
return this._knockout;
|
|
}, set:function(a) {
|
|
this._knockout = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "quality", {get:function() {
|
|
return this._quality;
|
|
}, set:function(a) {
|
|
this._quality = b.NumberUtilities.clamp(a | 0, 0, 15);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "strength", {get:function() {
|
|
return this._strength;
|
|
}, set:function(a) {
|
|
this._strength = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.clone = function() {
|
|
return new a(this._color, this._alpha, this._blurX, this._blurY, this._strength, this._quality, this._inner, this._knockout);
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.filters.BitmapFilter);
|
|
g.GlowFilter = m;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = b.AVM2.Runtime.asCoerceString, m = function(d) {
|
|
function a(a, b, d, e, f, l, m, k, r, h, s) {
|
|
"undefined" === typeof a && (a = 4);
|
|
"undefined" === typeof b && (b = 45);
|
|
"undefined" === typeof d && (d = null);
|
|
"undefined" === typeof e && (e = null);
|
|
"undefined" === typeof f && (f = null);
|
|
"undefined" === typeof l && (l = 4);
|
|
"undefined" === typeof m && (m = 4);
|
|
"undefined" === typeof k && (k = 1);
|
|
"undefined" === typeof r && (r = 1);
|
|
"undefined" === typeof h && (h = "inner");
|
|
"undefined" === typeof s && (s = !1);
|
|
this.distance = a;
|
|
this.angle = b;
|
|
g.GradientArrays.sanitize(d, e, f);
|
|
this._colors = g.GradientArrays.colors;
|
|
this._alphas = g.GradientArrays.alphas;
|
|
this._ratios = g.GradientArrays.ratios;
|
|
this.blurX = l;
|
|
this.blurY = m;
|
|
this.strength = k;
|
|
this.quality = r;
|
|
this.type = h;
|
|
this.knockout = s;
|
|
}
|
|
__extends(a, d);
|
|
a.FromUntyped = function(b) {
|
|
for (var d = [], g = [], e = 0;e < b.colors.length;e++) {
|
|
var m = b.colors[e];
|
|
d.push(m >>> 8);
|
|
g.push(m & 255) / 255;
|
|
}
|
|
e = f.filters.BitmapFilterType.OUTER;
|
|
b.onTop ? e = f.filters.BitmapFilterType.FULL : b.inner && (e = f.filters.BitmapFilterType.INNER);
|
|
return new a(b.distance, 180 * b.angle / Math.PI, d, g, b.ratios, b.blurX, b.blurY, b.strength, b.quality, e, b.knockout);
|
|
};
|
|
a.prototype._updateFilterBounds = function(a) {
|
|
if (this.type !== g.BitmapFilterType.INNER && (g.BitmapFilter._updateBlurBounds(a, this._blurX, this._blurY, this._quality), 0 !== this._distance)) {
|
|
var b = this._angle * Math.PI / 180;
|
|
a.x += Math.floor(Math.cos(b) * this._distance);
|
|
a.y += Math.floor(Math.sin(b) * this._distance);
|
|
0 < a.left && (a.left = 0);
|
|
0 < a.top && (a.top = 0);
|
|
}
|
|
};
|
|
Object.defineProperty(a.prototype, "distance", {get:function() {
|
|
return this._distance;
|
|
}, set:function(a) {
|
|
this._distance = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "angle", {get:function() {
|
|
return this._angle;
|
|
}, set:function(a) {
|
|
this._angle = +a % 360;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "colors", {get:function() {
|
|
return this._colors.concat();
|
|
}, set:function(a) {
|
|
b.isNullOrUndefined(a) ? k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "colors") : (this._colors = g.GradientArrays.sanitizeColors(a), a = this._colors.length, this._alphas = g.GradientArrays.sanitizeAlphas(this._alphas, a, a), this._ratios = g.GradientArrays.sanitizeRatios(this._ratios, a, a));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "alphas", {get:function() {
|
|
return this._alphas.concat();
|
|
}, set:function(a) {
|
|
b.isNullOrUndefined(a) ? k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "alphas") : (g.GradientArrays.sanitize(this._colors, a, this._ratios), this._colors = g.GradientArrays.colors, this._alphas = g.GradientArrays.alphas, this._ratios = g.GradientArrays.ratios);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "ratios", {get:function() {
|
|
return this._ratios.concat();
|
|
}, set:function(a) {
|
|
b.isNullOrUndefined(a) ? k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "ratios") : (g.GradientArrays.sanitize(this._colors, this._alphas, a), this._colors = g.GradientArrays.colors, this._alphas = g.GradientArrays.alphas, this._ratios = g.GradientArrays.ratios);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "blurX", {get:function() {
|
|
return this._blurX;
|
|
}, set:function(a) {
|
|
this._blurX = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "blurY", {get:function() {
|
|
return this._blurY;
|
|
}, set:function(a) {
|
|
this._blurY = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "knockout", {get:function() {
|
|
return this._knockout;
|
|
}, set:function(a) {
|
|
this._knockout = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "quality", {get:function() {
|
|
return this._quality;
|
|
}, set:function(a) {
|
|
this._quality = b.NumberUtilities.clamp(a | 0, 0, 15);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "strength", {get:function() {
|
|
return this._strength;
|
|
}, set:function(a) {
|
|
this._strength = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "type", {get:function() {
|
|
return this._type;
|
|
}, set:function(a) {
|
|
a = s(a);
|
|
null === a ? k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "type") : this._type = a === g.BitmapFilterType.INNER || a === g.BitmapFilterType.OUTER ? a : g.BitmapFilterType.FULL;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.clone = function() {
|
|
return new a(this._distance, this._angle, this._colors, this._alphas, this._ratios, this._blurX, this._blurY, this._strength, this._quality, this._type, this._knockout);
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.filters.BitmapFilter);
|
|
g.GradientBevelFilter = m;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = b.AVM2.Runtime.asCoerceString, m = function(d) {
|
|
function a(a, b, d, e, f, l, m, k, r, h, s) {
|
|
"undefined" === typeof a && (a = 4);
|
|
"undefined" === typeof b && (b = 45);
|
|
"undefined" === typeof d && (d = null);
|
|
"undefined" === typeof e && (e = null);
|
|
"undefined" === typeof f && (f = null);
|
|
"undefined" === typeof l && (l = 4);
|
|
"undefined" === typeof m && (m = 4);
|
|
"undefined" === typeof k && (k = 1);
|
|
"undefined" === typeof r && (r = 1);
|
|
"undefined" === typeof h && (h = "inner");
|
|
"undefined" === typeof s && (s = !1);
|
|
this.distance = a;
|
|
this.angle = b;
|
|
g.GradientArrays.sanitize(d, e, f);
|
|
this._colors = g.GradientArrays.colors;
|
|
this._alphas = g.GradientArrays.alphas;
|
|
this._ratios = g.GradientArrays.ratios;
|
|
this.blurX = l;
|
|
this.blurY = m;
|
|
this.strength = k;
|
|
this.quality = r;
|
|
this.type = h;
|
|
this.knockout = s;
|
|
}
|
|
__extends(a, d);
|
|
a.FromUntyped = function(b) {
|
|
for (var d = [], g = [], e = 0;e < b.colors.length;e++) {
|
|
var m = b.colors[e];
|
|
d.push(m >>> 8);
|
|
g.push(m & 255) / 255;
|
|
}
|
|
e = f.filters.BitmapFilterType.OUTER;
|
|
b.onTop ? e = f.filters.BitmapFilterType.FULL : b.inner && (e = f.filters.BitmapFilterType.INNER);
|
|
return new a(b.distance, 180 * b.angle / Math.PI, d, g, b.ratios, b.blurX, b.blurY, b.strength, b.quality, e, b.knockout);
|
|
};
|
|
a.prototype._updateFilterBounds = function(a) {
|
|
if (this.type !== g.BitmapFilterType.INNER && (g.BitmapFilter._updateBlurBounds(a, this._blurX, this._blurY, this._quality), 0 !== this._distance)) {
|
|
var b = this._angle * Math.PI / 180;
|
|
a.x += Math.floor(Math.cos(b) * this._distance);
|
|
a.y += Math.floor(Math.sin(b) * this._distance);
|
|
0 < a.left && (a.left = 0);
|
|
0 < a.top && (a.top = 0);
|
|
}
|
|
};
|
|
Object.defineProperty(a.prototype, "distance", {get:function() {
|
|
return this._distance;
|
|
}, set:function(a) {
|
|
this._distance = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "angle", {get:function() {
|
|
return this._angle;
|
|
}, set:function(a) {
|
|
this._angle = +a % 360;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "colors", {get:function() {
|
|
return this._colors.concat();
|
|
}, set:function(a) {
|
|
b.isNullOrUndefined(a) ? k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "colors") : (this._colors = g.GradientArrays.sanitizeColors(a), a = this._colors.length, this._alphas = g.GradientArrays.sanitizeAlphas(this._alphas, a, a), this._ratios = g.GradientArrays.sanitizeRatios(this._ratios, a, a));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "alphas", {get:function() {
|
|
return this._alphas.concat();
|
|
}, set:function(a) {
|
|
b.isNullOrUndefined(a) ? k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "alphas") : (g.GradientArrays.sanitize(this._colors, a, this._ratios), this._colors = g.GradientArrays.colors, this._alphas = g.GradientArrays.alphas, this._ratios = g.GradientArrays.ratios);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "ratios", {get:function() {
|
|
return this._ratios.concat();
|
|
}, set:function(a) {
|
|
b.isNullOrUndefined(a) ? k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "ratios") : (g.GradientArrays.sanitize(this._colors, this._alphas, a), this._colors = g.GradientArrays.colors, this._alphas = g.GradientArrays.alphas, this._ratios = g.GradientArrays.ratios);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "blurX", {get:function() {
|
|
return this._blurX;
|
|
}, set:function(a) {
|
|
this._blurX = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "blurY", {get:function() {
|
|
return this._blurY;
|
|
}, set:function(a) {
|
|
this._blurY = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "knockout", {get:function() {
|
|
return this._knockout;
|
|
}, set:function(a) {
|
|
this._knockout = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "quality", {get:function() {
|
|
return this._quality;
|
|
}, set:function(a) {
|
|
this._quality = b.NumberUtilities.clamp(a | 0, 0, 15);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "strength", {get:function() {
|
|
return this._strength;
|
|
}, set:function(a) {
|
|
this._strength = b.NumberUtilities.clamp(+a, 0, 255);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "type", {get:function() {
|
|
return this._type;
|
|
}, set:function(a) {
|
|
a = s(a);
|
|
null === a ? k.Runtime.throwError("TypeError", k.Errors.NullPointerError, "type") : this._type = a === g.BitmapFilterType.INNER || a === g.BitmapFilterType.OUTER ? a : g.BitmapFilterType.FULL;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.clone = function() {
|
|
return new a(this._distance, this._angle, this._colors, this._alphas, this._ratios, this._blurX, this._blurY, this._strength, this._quality, this._type, this._knockout);
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.filters.BitmapFilter);
|
|
g.GradientGlowFilter = m;
|
|
})(f.filters || (f.filters = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.IntegerUtilities.toS16, m = b.IntegerUtilities.clampS8U8, d = function(a) {
|
|
function b(a, c, d, f, l, g, m, k) {
|
|
"undefined" === typeof a && (a = 1);
|
|
"undefined" === typeof c && (c = 1);
|
|
"undefined" === typeof d && (d = 1);
|
|
"undefined" === typeof f && (f = 1);
|
|
"undefined" === typeof l && (l = 0);
|
|
"undefined" === typeof g && (g = 0);
|
|
"undefined" === typeof m && (m = 0);
|
|
"undefined" === typeof k && (k = 0);
|
|
this.redMultiplier = +a;
|
|
this.greenMultiplier = +c;
|
|
this.blueMultiplier = +d;
|
|
this.alphaMultiplier = +f;
|
|
this.redOffset = +l;
|
|
this.greenOffset = +g;
|
|
this.blueOffset = +m;
|
|
this.alphaOffset = +k;
|
|
}
|
|
__extends(b, a);
|
|
b.FromCXForm = function(a) {
|
|
return new b(a.redMultiplier / 256, a.greenMultiplier / 256, a.blueMultiplier / 256, a.alphaMultiplier / 256, a.redOffset, a.greenOffset, a.blueOffset, a.alphaOffset);
|
|
};
|
|
Object.defineProperty(b.prototype, "native_redMultiplier", {get:function() {
|
|
return this.redMultiplier;
|
|
}, set:function(a) {
|
|
this.redMultiplier = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "native_greenMultiplier", {get:function() {
|
|
return this.greenMultiplier;
|
|
}, set:function(a) {
|
|
this.greenMultiplier = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "native_blueMultiplier", {get:function() {
|
|
return this.blueMultiplier;
|
|
}, set:function(a) {
|
|
this.blueMultiplier = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "native_alphaMultiplier", {get:function() {
|
|
return this.alphaMultiplier;
|
|
}, set:function(a) {
|
|
this.alphaMultiplier = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "native_redOffset", {get:function() {
|
|
return this.redOffset;
|
|
}, set:function(a) {
|
|
this.redOffset = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "native_greenOffset", {get:function() {
|
|
return this.greenOffset;
|
|
}, set:function(a) {
|
|
this.greenOffset = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "native_blueOffset", {get:function() {
|
|
return this.blueOffset;
|
|
}, set:function(a) {
|
|
this.blueOffset = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "native_alphaOffset", {get:function() {
|
|
return this.alphaOffset;
|
|
}, set:function(a) {
|
|
this.alphaOffset = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.ColorTransform = function(a, b, c, d, f, g, m, k) {
|
|
"undefined" === typeof a && (a = 1);
|
|
"undefined" === typeof b && (b = 1);
|
|
"undefined" === typeof c && (c = 1);
|
|
"undefined" === typeof d && (d = 1);
|
|
"undefined" === typeof f && (f = 0);
|
|
"undefined" === typeof g && (g = 0);
|
|
"undefined" === typeof m && (m = 0);
|
|
"undefined" === typeof k && (k = 0);
|
|
this.redMultiplier = a;
|
|
this.greenMultiplier = b;
|
|
this.blueMultiplier = c;
|
|
this.alphaMultiplier = d;
|
|
this.redOffset = f;
|
|
this.greenOffset = g;
|
|
this.blueOffset = m;
|
|
this.alphaOffset = k;
|
|
};
|
|
Object.defineProperty(b.prototype, "color", {get:function() {
|
|
return this.redOffset << 16 | this.greenOffset << 8 | this.blueOffset;
|
|
}, set:function(a) {
|
|
this.redOffset = a >> 16 & 255;
|
|
this.greenOffset = a >> 8 & 255;
|
|
this.blueOffset = a & 255;
|
|
this.redMultiplier = this.greenMultiplier = this.blueMultiplier = 1;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.concat = function(a) {
|
|
this.redMultiplier *= a.redMultiplier;
|
|
this.greenMultiplier *= a.greenMultiplier;
|
|
this.blueMultiplier *= a.blueMultiplier;
|
|
this.alphaMultiplier *= a.alphaMultiplier;
|
|
this.redOffset += a.redOffset;
|
|
this.greenOffset += a.greenOffset;
|
|
this.blueOffset += a.blueOffset;
|
|
this.alphaOffset += a.alphaOffset;
|
|
};
|
|
b.prototype.preMultiply = function(a) {
|
|
this.redOffset += a.redOffset * this.redMultiplier;
|
|
this.greenOffset += a.greenOffset * this.greenMultiplier;
|
|
this.blueOffset += a.blueOffset * this.blueMultiplier;
|
|
this.alphaOffset += a.alphaOffset * this.alphaMultiplier;
|
|
this.redMultiplier *= a.redMultiplier;
|
|
this.greenMultiplier *= a.greenMultiplier;
|
|
this.blueMultiplier *= a.blueMultiplier;
|
|
this.alphaMultiplier *= a.alphaMultiplier;
|
|
};
|
|
b.prototype.copyFrom = function(a) {
|
|
this.redMultiplier = a.redMultiplier;
|
|
this.greenMultiplier = a.greenMultiplier;
|
|
this.blueMultiplier = a.blueMultiplier;
|
|
this.alphaMultiplier = a.alphaMultiplier;
|
|
this.redOffset = a.redOffset;
|
|
this.greenOffset = a.greenOffset;
|
|
this.blueOffset = a.blueOffset;
|
|
this.alphaOffset = a.alphaOffset;
|
|
};
|
|
b.prototype.setTo = function(a, b, c, d, f, g, m, k) {
|
|
this.redMultiplier = a;
|
|
this.greenMultiplier = b;
|
|
this.blueMultiplier = c;
|
|
this.alphaMultiplier = d;
|
|
this.redOffset = f;
|
|
this.greenOffset = g;
|
|
this.blueOffset = m;
|
|
this.alphaOffset = k;
|
|
};
|
|
b.prototype.clone = function() {
|
|
return new b(this.redMultiplier, this.greenMultiplier, this.blueMultiplier, this.alphaMultiplier, this.redOffset, this.greenOffset, this.blueOffset, this.alphaOffset);
|
|
};
|
|
b.prototype.convertToFixedPoint = function() {
|
|
this.redMultiplier = m(this.redMultiplier);
|
|
this.greenMultiplier = m(this.greenMultiplier);
|
|
this.blueMultiplier = m(this.blueMultiplier);
|
|
this.alphaMultiplier = m(this.alphaMultiplier);
|
|
this.redOffset = k(this.redOffset);
|
|
this.greenOffset = k(this.greenOffset);
|
|
this.blueOffset = k(this.blueOffset);
|
|
this.alphaOffset = k(this.alphaOffset);
|
|
};
|
|
b.prototype.toString = function() {
|
|
return "(redMultiplier=" + this.redMultiplier + ", greenMultiplier=" + this.greenMultiplier + ", blueMultiplier=" + this.blueMultiplier + ", alphaMultiplier=" + this.alphaMultiplier + ", redOffset=" + this.redOffset + ", greenOffset=" + this.greenOffset + ", blueOffset=" + this.blueOffset + ", alphaOffset=" + this.alphaOffset + ")";
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.ColorTransform = d;
|
|
})(f.geom || (f.geom = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b() {
|
|
k("Dummy Constructor: public flash.media.Camera");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "names", {get:function() {
|
|
k("public flash.media.Camera::get names");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "isSupported", {get:function() {
|
|
k("public flash.media.Camera::get isSupported");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.getCamera = function(a) {
|
|
"undefined" === typeof a && (a = null);
|
|
m(a);
|
|
k("public flash.media.Camera::static getCamera");
|
|
};
|
|
b._scanHardware = function() {
|
|
k("public flash.media.Camera::static _scanHardware");
|
|
};
|
|
Object.defineProperty(b.prototype, "activityLevel", {get:function() {
|
|
k("public flash.media.Camera::get activityLevel");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "bandwidth", {get:function() {
|
|
k("public flash.media.Camera::get bandwidth");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "currentFPS", {get:function() {
|
|
k("public flash.media.Camera::get currentFPS");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "fps", {get:function() {
|
|
k("public flash.media.Camera::get fps");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "height", {get:function() {
|
|
k("public flash.media.Camera::get height");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "index", {get:function() {
|
|
k("public flash.media.Camera::get index");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "keyFrameInterval", {get:function() {
|
|
k("public flash.media.Camera::get keyFrameInterval");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "loopback", {get:function() {
|
|
k("public flash.media.Camera::get loopback");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "motionLevel", {get:function() {
|
|
k("public flash.media.Camera::get motionLevel");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "motionTimeout", {get:function() {
|
|
k("public flash.media.Camera::get motionTimeout");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "muted", {get:function() {
|
|
k("public flash.media.Camera::get muted");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "name", {get:function() {
|
|
k("public flash.media.Camera::get name");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "position", {get:function() {
|
|
k("public flash.media.Camera::get position");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "quality", {get:function() {
|
|
k("public flash.media.Camera::get quality");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "width", {get:function() {
|
|
k("public flash.media.Camera::get width");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.setCursor = function(a) {
|
|
k("public flash.media.Camera::setCursor");
|
|
};
|
|
b.prototype.setKeyFrameInterval = function(a) {
|
|
k("public flash.media.Camera::setKeyFrameInterval");
|
|
};
|
|
b.prototype.setLoopback = function(a) {
|
|
k("public flash.media.Camera::setLoopback");
|
|
};
|
|
b.prototype.setMode = function(a, b, c, d) {
|
|
k("public flash.media.Camera::setMode");
|
|
};
|
|
b.prototype.setMotionLevel = function(a, b) {
|
|
k("public flash.media.Camera::setMotionLevel");
|
|
};
|
|
b.prototype.setQuality = function(a, b) {
|
|
k("public flash.media.Camera::setQuality");
|
|
};
|
|
b.prototype.drawToBitmapData = function(a) {
|
|
k("public flash.media.Camera::drawToBitmapData");
|
|
};
|
|
b.prototype.copyToByteArray = function(a, b) {
|
|
k("public flash.media.Camera::copyToByteArray");
|
|
};
|
|
b.prototype.copyToVector = function(a, b) {
|
|
k("public flash.media.Camera::copyToVector");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(f.events.EventDispatcher);
|
|
g.Camera = d;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.media.ID3Info");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = "songName artist album year comment genre track".split(" ");
|
|
return a;
|
|
}(g.ASNative);
|
|
f.ID3Info = m;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b() {
|
|
k("Dummy Constructor: public flash.media.Microphone");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "names", {get:function() {
|
|
k("public flash.media.Microphone::get names");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "isSupported", {get:function() {
|
|
k("public flash.media.Microphone::get isSupported");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.getMicrophone = function(a) {
|
|
k("public flash.media.Microphone::static getMicrophone");
|
|
};
|
|
b.getEnhancedMicrophone = function(a) {
|
|
k("public flash.media.Microphone::static getEnhancedMicrophone");
|
|
};
|
|
Object.defineProperty(b.prototype, "rate", {get:function() {
|
|
k("public flash.media.Microphone::get rate");
|
|
}, set:function(a) {
|
|
k("public flash.media.Microphone::set rate");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "codec", {get:function() {
|
|
k("public flash.media.Microphone::get codec");
|
|
}, set:function(a) {
|
|
m(a);
|
|
k("public flash.media.Microphone::set codec");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "framesPerPacket", {get:function() {
|
|
k("public flash.media.Microphone::get framesPerPacket");
|
|
}, set:function(a) {
|
|
k("public flash.media.Microphone::set framesPerPacket");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "encodeQuality", {get:function() {
|
|
k("public flash.media.Microphone::get encodeQuality");
|
|
}, set:function(a) {
|
|
k("public flash.media.Microphone::set encodeQuality");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "noiseSuppressionLevel", {get:function() {
|
|
k("public flash.media.Microphone::get noiseSuppressionLevel");
|
|
}, set:function(a) {
|
|
k("public flash.media.Microphone::set noiseSuppressionLevel");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "enableVAD", {get:function() {
|
|
k("public flash.media.Microphone::get enableVAD");
|
|
}, set:function(a) {
|
|
k("public flash.media.Microphone::set enableVAD");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "activityLevel", {get:function() {
|
|
k("public flash.media.Microphone::get activityLevel");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "gain", {get:function() {
|
|
k("public flash.media.Microphone::get gain");
|
|
}, set:function(a) {
|
|
k("public flash.media.Microphone::set gain");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "index", {get:function() {
|
|
k("public flash.media.Microphone::get index");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "muted", {get:function() {
|
|
k("public flash.media.Microphone::get muted");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "name", {get:function() {
|
|
k("public flash.media.Microphone::get name");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "silenceLevel", {get:function() {
|
|
k("public flash.media.Microphone::get silenceLevel");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "silenceTimeout", {get:function() {
|
|
k("public flash.media.Microphone::get silenceTimeout");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "useEchoSuppression", {get:function() {
|
|
k("public flash.media.Microphone::get useEchoSuppression");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "soundTransform", {get:function() {
|
|
k("public flash.media.Microphone::get soundTransform");
|
|
}, set:function(a) {
|
|
k("public flash.media.Microphone::set soundTransform");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.setSilenceLevel = function(a, b) {
|
|
k("public flash.media.Microphone::setSilenceLevel");
|
|
};
|
|
b.prototype.setUseEchoSuppression = function(a) {
|
|
k("public flash.media.Microphone::setUseEchoSuppression");
|
|
};
|
|
b.prototype.setLoopBack = function(a) {
|
|
k("public flash.media.Microphone::setLoopBack");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(f.events.EventDispatcher);
|
|
g.Microphone = d;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(k) {
|
|
function s(a, b) {
|
|
var c = document.createElement("audio");
|
|
c.canPlayType(a.mimeType) ? (c.preload = "metadata", c.src = URL.createObjectURL(new Blob([a.data], {type:a.mimeType})), c.load(), c.addEventListener("loadedmetadata", function() {
|
|
b({duration:1E3 * this.duration});
|
|
})) : b({duration:0});
|
|
}
|
|
var m = b.Debug.notImplemented, d = b.AVM2.Runtime.asCoerceString, a = b.Debug.somewhatImplemented, c = b.Telemetry, n = b.AVM2.ABC.Multiname, p = function() {
|
|
return function() {
|
|
};
|
|
}(), e = function(e) {
|
|
function l(a, b) {
|
|
m("Dummy Constructor: public flash.media.Sound");
|
|
}
|
|
__extends(l, e);
|
|
Object.defineProperty(l.prototype, "url", {get:function() {
|
|
return this._url;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(l.prototype, "isURLInaccessible", {get:function() {
|
|
m("public flash.media.Sound::get isURLInaccessible");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(l.prototype, "length", {get:function() {
|
|
return this._length;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(l.prototype, "isBuffering", {get:function() {
|
|
m("public flash.media.Sound::get isBuffering");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(l.prototype, "bytesLoaded", {get:function() {
|
|
return this._bytesLoaded;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(l.prototype, "bytesTotal", {get:function() {
|
|
return this._bytesTotal;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(l.prototype, "id3", {get:function() {
|
|
return this._id3;
|
|
}, enumerable:!0, configurable:!0});
|
|
l.prototype.loadCompressedDataFromByteArray = function(a, b) {
|
|
m("public flash.media.Sound::loadCompressedDataFromByteArray");
|
|
};
|
|
l.prototype.loadPCMFromByteArray = function(a, b, c, h, e) {
|
|
"undefined" === typeof c && (c = "float");
|
|
d(c);
|
|
m("public flash.media.Sound::loadPCMFromByteArray");
|
|
};
|
|
l.prototype.play = function(a, c, d) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof c && (c = 0);
|
|
"undefined" === typeof d && (d = null);
|
|
a = +a;
|
|
c |= 0;
|
|
var h = new f.media.SoundChannel;
|
|
h._sound = this;
|
|
h._soundTransform = b.isNullOrUndefined(d) ? new f.media.SoundTransform : d;
|
|
this._playQueue.push({channel:h, startTime:a});
|
|
if (g.disableAudioOption.value) {
|
|
return h;
|
|
}
|
|
this._soundData && h._playSoundDataViaAudio(this._soundData, a, c);
|
|
return h;
|
|
};
|
|
l.prototype.close = function() {
|
|
a("public flash.media.Sound::close");
|
|
};
|
|
l.prototype.extract = function(a, b, c) {
|
|
m("public flash.media.Sound::extract");
|
|
};
|
|
l.prototype._load = function(a, b, c) {
|
|
if (a) {
|
|
var d = this, e = this._stream = new f.net.URLStream, g = new f.utils.ByteArray, l = 0, k = new p;
|
|
k.completed = !1;
|
|
e.addEventListener("progress", function(a) {
|
|
d._bytesLoaded = a[n.getPublicQualifiedName("bytesLoaded")];
|
|
d._bytesTotal = a[n.getPublicQualifiedName("bytesTotal")];
|
|
var b = e.bytesAvailable;
|
|
e.readBytes(g, l, b);
|
|
l += b;
|
|
d.dispatchEvent(a);
|
|
});
|
|
e.addEventListener("complete", function(a) {
|
|
d.dispatchEvent(a);
|
|
k.data = g._buffer;
|
|
k.mimeType = "audio/mpeg";
|
|
k.completed = !0;
|
|
d._soundData = k;
|
|
s(k, function(a) {
|
|
d._length = a.duration;
|
|
});
|
|
d._playQueue.forEach(function(a) {
|
|
a.channel._playSoundDataViaAudio(k, a.startTime);
|
|
});
|
|
});
|
|
e.load(a);
|
|
}
|
|
};
|
|
l.classInitializer = null;
|
|
l.initializer = function(a) {
|
|
this._playQueue = [];
|
|
this._url = null;
|
|
this._bytesLoaded = this._bytesTotal = this._length = 0;
|
|
this._id3 = new f.media.ID3Info;
|
|
c.instance.reportTelemetry({topic:"feature", feature:5});
|
|
if (a) {
|
|
var b = new p;
|
|
a.pcm && (b.sampleRate = a.sampleRate, b.channels = a.channels, b.pcm = a.pcm, b.end = a.pcm.length);
|
|
b.completed = !0;
|
|
a.packaged && (b.data = a.packaged.data.buffer, b.mimeType = a.packaged.mimeType);
|
|
var d = this;
|
|
s(b, function(a) {
|
|
d._length = a.duration;
|
|
});
|
|
this._soundData = b;
|
|
}
|
|
};
|
|
l.classSymbols = null;
|
|
l.instanceSymbols = null;
|
|
return l;
|
|
}(f.events.EventDispatcher);
|
|
k.Sound = e;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.assert, m = b.Debug.notImplemented, d = b.Debug.somewhatImplemented, a = b.Debug.error, c = function() {
|
|
function a(b, c) {
|
|
this._sourceRate = b;
|
|
this._targetRate = c;
|
|
this._tail = [];
|
|
this._sourceOffset = 0;
|
|
}
|
|
a.prototype.getData = function(a, b) {
|
|
for (var c = this._sourceRate / this._targetRate, d = this._sourceOffset, e = Math.ceil((b - 1) * c + d) + 1, h = [], f = 0;f < a.length;f++) {
|
|
h.push(new Float32Array(e));
|
|
}
|
|
this.ondatarequested({data:h, count:e});
|
|
for (f = 0;f < a.length;f++) {
|
|
for (var g = a[f], k = h[f], m = 0;m < b;m++) {
|
|
var n = m * c + d, p = n | 0, s = Math.ceil(n) | 0, t = 0 > p ? this._tail[f] : k[p];
|
|
p === s ? g[m] = t : (n -= p, g[m] = t * (1 - n) + k[s] * n);
|
|
}
|
|
this._tail[f] = k[e - 1];
|
|
}
|
|
this._sourceOffset = (b - 1) * c + d - (e - 1);
|
|
};
|
|
return a;
|
|
}(), n = function() {
|
|
function a(b, d) {
|
|
var f = a._cachedContext;
|
|
f || (f = new AudioContext, a._cachedContext = f);
|
|
this._context = f;
|
|
this._contextSampleRate = f.sampleRate || 44100;
|
|
this._channels = d;
|
|
this._sampleRate = b;
|
|
this._contextSampleRate !== b && (this._resampler = new c(b, this._contextSampleRate), this._resampler.ondatarequested = function(a) {
|
|
this.requestData(a.data, a.count);
|
|
}.bind(this));
|
|
}
|
|
a.prototype.start = function() {
|
|
var a = this._context.createScriptProcessor(2048, 0, this._channels), b = this;
|
|
a.onaudioprocess = function(a) {
|
|
for (var c = [], d = 0;d < b._channels;d++) {
|
|
c.push(a.outputBuffer.getChannelData(d));
|
|
}
|
|
a = c[0].length;
|
|
b._resampler ? b._resampler.getData(c, a) : b.requestData(c, a);
|
|
};
|
|
a.connect(this._context.destination);
|
|
this._source = a;
|
|
};
|
|
a.prototype.stop = function() {
|
|
this._source.disconnect(this._context.destination);
|
|
};
|
|
a.prototype.requestData = function(a, b) {
|
|
var c = this._channels, d = new Float32Array(b * c);
|
|
this.ondatarequested({data:d, count:d.length});
|
|
for (var e = 0, h = 0;e < b;e++) {
|
|
for (var f = 0;f < c;f++) {
|
|
a[f][e] = d[h++];
|
|
}
|
|
}
|
|
};
|
|
a.isSupported = function() {
|
|
return "undefined" !== typeof AudioContext;
|
|
};
|
|
return a;
|
|
}(), p = function(c) {
|
|
function p() {
|
|
m("Dummy Constructor: public flash.media.SoundChannel");
|
|
}
|
|
__extends(p, c);
|
|
Object.defineProperty(p.prototype, "position", {get:function() {
|
|
return this._position;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "soundTransform", {get:function() {
|
|
return this._soundTransform;
|
|
}, set:function(a) {
|
|
d("public flash.media.SoundChannel::set soundTransform");
|
|
this._soundTransform = b.isNullOrUndefined(a) ? new f.media.SoundTransform : a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "leftPeak", {get:function() {
|
|
return this._leftPeak;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "rightPeak", {get:function() {
|
|
return this._rightPeak;
|
|
}, enumerable:!0, configurable:!0});
|
|
p.prototype.stop = function() {
|
|
this._element && (this._unregisterWithSoundMixer(), this._element.pause());
|
|
this._audioChannel && (this._unregisterWithSoundMixer(), this._audioChannel.stop());
|
|
};
|
|
p.prototype._playSoundDataViaAudio = function(a, b, c) {
|
|
if (a.mimeType) {
|
|
this._registerWithSoundMixer();
|
|
this._position = b;
|
|
var d = this, h = 0, e = document.createElement("audio");
|
|
e.canPlayType(a.mimeType) ? (e.preload = "metadata", e.loop = 0 < c, e.src = URL.createObjectURL(new Blob([a.data], {type:a.mimeType})), e.addEventListener("loadeddata", function() {
|
|
e.currentTime = b / 1E3;
|
|
e.play();
|
|
}), e.addEventListener("timeupdate", function() {
|
|
var a = e.currentTime;
|
|
c && h > a && (--c, c || (e.loop = !1), a < b / 1E3 && (e.currentTime = b / 1E3));
|
|
d._position = 1E3 * (h = a);
|
|
}), e.addEventListener("ended", function() {
|
|
d._unregisterWithSoundMixer();
|
|
d.dispatchEvent(new f.events.Event("soundComplete", !1, !1));
|
|
d._element = null;
|
|
}), this._element = e, this._applySoundTransform()) : console.error('ERROR: "' + a.mimeType + '" type playback is not supported by the browser');
|
|
}
|
|
};
|
|
p.prototype._playSoundDataViaChannel = function(b, c, d) {
|
|
k(b.pcm, "no pcm data found");
|
|
this._registerWithSoundMixer();
|
|
var e = this, h = Math.round(c / 1E3 * b.sampleRate) * b.channels, g = h;
|
|
this._position = c;
|
|
n.isSupported ? c = new n(b.sampleRate, b.channels) : (a("PCM data playback is not supported by the browser"), c = void 0);
|
|
this._audioChannel = c;
|
|
this._audioChannel.ondatarequested = function(a) {
|
|
var c = b.end;
|
|
if (g >= c && b.completed) {
|
|
e._unregisterWithSoundMixer(), e._audioChannel.stop(), e.dispatchEvent(new f.events.Event("soundComplete", !1, !1));
|
|
} else {
|
|
var k = a.count;
|
|
a = a.data;
|
|
var m = b.pcm;
|
|
do {
|
|
for (var n = Math.min(c - g, k), p = 0;p < n;p++) {
|
|
a[p] = m[g++];
|
|
}
|
|
k -= n;
|
|
if (g >= c) {
|
|
if (!d) {
|
|
break;
|
|
}
|
|
d--;
|
|
g = h;
|
|
}
|
|
} while (0 < k);
|
|
e._position = g / b.sampleRate / b.channels * 1E3;
|
|
}
|
|
};
|
|
this._audioChannel.start();
|
|
this._applySoundTransform();
|
|
};
|
|
p.prototype._applySoundTransform = function() {
|
|
var a = this._soundTransform.volume;
|
|
g.SoundMixer._soundTransform && (a *= g.SoundMixer._soundTransform.volume);
|
|
a *= g.SoundMixer._getMasterVolume();
|
|
this._element && (this._element.volume = 0 >= a ? 0 : 1 <= a ? 1 : a);
|
|
};
|
|
p.prototype._registerWithSoundMixer = function() {
|
|
g.SoundMixer._registerChannel(this);
|
|
};
|
|
p.prototype._unregisterWithSoundMixer = function() {
|
|
g.SoundMixer._unregisterChannel(this);
|
|
};
|
|
p.classInitializer = null;
|
|
p.initializer = function(a) {
|
|
this._element = null;
|
|
this._rightPeak = this._leftPeak = this._position = 0;
|
|
this._pcmData = null;
|
|
this._soundTransform = new f.media.SoundTransform;
|
|
};
|
|
p.classSymbols = null;
|
|
p.instanceSymbols = null;
|
|
return p;
|
|
}(f.events.EventDispatcher);
|
|
g.SoundChannel = p;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, b) {
|
|
k("Dummy Constructor: public flash.media.SoundLoaderContext");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.SoundLoaderContext = m;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(k) {
|
|
var s = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.Debug.somewhatImplemented, a = function(a) {
|
|
function g() {
|
|
s("Dummy Constructor: public flash.media.SoundMixer");
|
|
}
|
|
__extends(g, a);
|
|
Object.defineProperty(g, "bufferTime", {get:function() {
|
|
s("public flash.media.SoundMixer::get bufferTime");
|
|
}, set:function(a) {
|
|
s("public flash.media.SoundMixer::set bufferTime");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g, "soundTransform", {get:function() {
|
|
d("public flash.media.SoundMixer::get soundTransform");
|
|
return b.isNullOrUndefined(g._soundTransform) ? new f.media.SoundTransform : new f.media.SoundTransform(g._soundTransform.volume, g._soundTransform.pan);
|
|
}, set:function(a) {
|
|
d("public flash.media.SoundMixer::set soundTransform");
|
|
g._soundTransform = b.isNullOrUndefined(a) ? new f.media.SoundTransform : a;
|
|
g._registeredChannels.forEach(function(a) {
|
|
a._applySoundTransform();
|
|
});
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g, "audioPlaybackMode", {get:function() {
|
|
s("public flash.media.SoundMixer::get audioPlaybackMode");
|
|
}, set:function(a) {
|
|
m(a);
|
|
s("public flash.media.SoundMixer::set audioPlaybackMode");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g, "useSpeakerphoneForVoice", {get:function() {
|
|
s("public flash.media.SoundMixer::get useSpeakerphoneForVoice");
|
|
}, set:function(a) {
|
|
s("public flash.media.SoundMixer::set useSpeakerphoneForVoice");
|
|
}, enumerable:!0, configurable:!0});
|
|
g.stopAll = function() {
|
|
g._registeredChannels.forEach(function(a) {
|
|
a.stop();
|
|
});
|
|
g._registeredChannels = [];
|
|
};
|
|
g.computeSpectrum = function(a, b, c) {
|
|
d("public flash.media.SoundMixer::static computeSpectrum");
|
|
b = new Float32Array(1024);
|
|
for (c = 0;1024 > c;c++) {
|
|
b[c] = Math.random();
|
|
}
|
|
a.writeRawBytes(b);
|
|
a.position = 0;
|
|
};
|
|
g.areSoundsInaccessible = function() {
|
|
s("public flash.media.SoundMixer::static areSoundsInaccessible");
|
|
};
|
|
g._getMasterVolume = function() {
|
|
return g._masterVolume;
|
|
};
|
|
g._setMasterVolume = function(a) {
|
|
g._masterVolume = +a;
|
|
g._registeredChannels.forEach(function(a) {
|
|
a._applySoundTransform();
|
|
});
|
|
};
|
|
g._registerChannel = function(a) {
|
|
g._registeredChannels.push(a);
|
|
};
|
|
g._unregisterChannel = function(a) {
|
|
a = g._registeredChannels.indexOf(a);
|
|
0 <= a && g._registeredChannels.splice(a, 1);
|
|
};
|
|
g.classInitializer = null;
|
|
g.initializer = null;
|
|
g.classSymbols = null;
|
|
g.instanceSymbols = null;
|
|
g._masterVolume = 1;
|
|
g._registeredChannels = [];
|
|
return g;
|
|
}(g.ASNative);
|
|
k.SoundMixer = a;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.Debug.somewhatImplemented, d = function(a) {
|
|
function b(a, c) {
|
|
k("Dummy Constructor: public flash.media.SoundTransform");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "volume", {get:function() {
|
|
return this._volume;
|
|
}, set:function(a) {
|
|
this._volume = +a;
|
|
this._updateTransform();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "leftToLeft", {get:function() {
|
|
return this._leftToLeft;
|
|
}, set:function(a) {
|
|
this._leftToLeft = +a;
|
|
this._updateTransform();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "leftToRight", {get:function() {
|
|
return this._leftToRight;
|
|
}, set:function(a) {
|
|
this._leftToRight = +a;
|
|
this._updateTransform();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "rightToRight", {get:function() {
|
|
return this._rightToRight;
|
|
}, set:function(a) {
|
|
this._rightToRight = +a;
|
|
this._updateTransform();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "rightToLeft", {get:function() {
|
|
return this._rightToLeft;
|
|
}, set:function(a) {
|
|
this._rightToLeft = +a;
|
|
this._updateTransform();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "pan", {get:function() {
|
|
return 0 === this._leftToRight && 0 === this._rightToLeft ? 1 - this._leftToLeft * this._leftToLeft : 0;
|
|
}, set:function(a) {
|
|
this.leftToLeft = Math.sqrt(1 - a);
|
|
this.leftToRight = 0;
|
|
this.rightToRight = Math.sqrt(1 + a);
|
|
this.rightToLeft = 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype._updateTransform = function() {
|
|
m("public flash.media.SoundTransform::_updateTransform");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.SoundTransform = d;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.Debug.assert, d = function(a) {
|
|
function b(a, c) {
|
|
"undefined" === typeof a && (a = 320);
|
|
"undefined" === typeof c && (c = 240);
|
|
f.display.DisplayObject.instanceConstructorNoInitialize.call(this);
|
|
this._width = a | 0;
|
|
this._height = c | 0;
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "deblocking", {get:function() {
|
|
return this._deblocking;
|
|
}, set:function(a) {
|
|
this._deblocking = a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "smoothing", {get:function() {
|
|
return this._smoothing;
|
|
}, set:function(a) {
|
|
this._smoothing = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "videoWidth", {get:function() {
|
|
return this._videoWidth;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "videoHeight", {get:function() {
|
|
return this._videoHeight;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype._containsPointDirectly = function(a, b) {
|
|
m(this._getContentBounds().contains(a, b));
|
|
return!0;
|
|
};
|
|
b.prototype.clear = function() {
|
|
k("public flash.media.Video::clear");
|
|
};
|
|
b.prototype.attachNetStream = function(a) {
|
|
if (this._netStream !== a) {
|
|
this._netStream && (a._videoReferrer = null);
|
|
if (this._netStream = a) {
|
|
a._videoReferrer = this;
|
|
}
|
|
this._setDirtyFlags(33554432);
|
|
}
|
|
};
|
|
b.prototype.attachCamera = function(a) {
|
|
k("public flash.media.Video::attachCamera");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(f.display.DisplayObject);
|
|
g.Video = d;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.media.VideoStreamSettings");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.VideoStreamSettings = m;
|
|
})(f.media || (f.media = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b(a, c, d) {
|
|
k("Dummy Constructor: public flash.net.FileFilter");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "description", {get:function() {
|
|
return this._description;
|
|
}, set:function(a) {
|
|
this._description = m(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "extension", {get:function() {
|
|
return this._extension;
|
|
}, set:function(a) {
|
|
this._extension = m(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "macType", {get:function() {
|
|
return this._macType;
|
|
}, set:function(a) {
|
|
this._macType = m(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.FileFilter = d;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.Debug.somewhatImplemented, a = b.FileLoadingService, c = function(b) {
|
|
function c() {
|
|
k("Dummy Constructor: public flash.net.LocalConnection");
|
|
}
|
|
__extends(c, b);
|
|
c.prototype.close = function() {
|
|
k("public flash.net.LocalConnection::close");
|
|
};
|
|
c.prototype.connect = function(a) {
|
|
m(a);
|
|
k("public flash.net.LocalConnection::connect");
|
|
};
|
|
Object.defineProperty(c.prototype, "domain", {get:function() {
|
|
d("public flash.net.LocalConnection::get domain");
|
|
var b = a.instance.resolveUrl("/");
|
|
return(b = /:\/\/(.+?)[:?#\/]/.exec(b)) && b[1];
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.send = function(a, b) {
|
|
m(a);
|
|
m(b);
|
|
k("public flash.net.LocalConnection::send");
|
|
};
|
|
Object.defineProperty(c.prototype, "client", {get:function() {
|
|
k("public flash.net.LocalConnection::get client");
|
|
}, set:function(a) {
|
|
k("public flash.net.LocalConnection::set client");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "isPerUser", {get:function() {
|
|
k("public flash.net.LocalConnection::get isPerUser");
|
|
}, set:function(a) {
|
|
k("public flash.net.LocalConnection::set isPerUser");
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.allowDomain = function() {
|
|
k("public flash.net.LocalConnection::allowDomain");
|
|
};
|
|
c.prototype.allowInsecureDomain = function() {
|
|
k("public flash.net.LocalConnection::allowInsecureDomain");
|
|
};
|
|
c.classInitializer = null;
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
return c;
|
|
}(f.events.EventDispatcher);
|
|
g.LocalConnection = c;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.Debug.somewhatImplemented, a = b.AVM2.Runtime.wrapJSObject, c = b.Telemetry, n = b.AVM2.AS.flash.events.NetStatusEvent, p = function(b) {
|
|
function f() {
|
|
k("Dummy Constructor: public flash.net.NetConnection");
|
|
}
|
|
__extends(f, b);
|
|
Object.defineProperty(f, "defaultObjectEncoding", {get:function() {
|
|
return f._defaultObjectEncoding;
|
|
}, set:function(a) {
|
|
f._defaultObjectEncoding = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "connected", {get:function() {
|
|
return this._connected;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "uri", {get:function() {
|
|
return this._uri;
|
|
}, enumerable:!0, configurable:!0});
|
|
f.prototype.connect = function(b) {
|
|
b = m(b);
|
|
d("public flash.net.NetConnection::connect");
|
|
(this._uri = b) ? this.dispatchEvent(new n(n.NET_STATUS, !1, !1, a({level:"status", code:"NetConnection.Connect.Failed"}))) : (this._connected = !0, this.dispatchEvent(new n(n.NET_STATUS, !1, !1, a({level:"status", code:"NetConnection.Connect.Success"}))));
|
|
};
|
|
Object.defineProperty(f.prototype, "client", {get:function() {
|
|
return this._client;
|
|
}, set:function(a) {
|
|
this._client = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "objectEncoding", {get:function() {
|
|
return this._objectEncoding;
|
|
}, set:function(a) {
|
|
a >>>= 0;
|
|
d("public flash.net.NetConnection::set objectEncoding");
|
|
this._objectEncoding = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "proxyType", {get:function() {
|
|
return this._proxyType;
|
|
}, set:function(a) {
|
|
a = m(a);
|
|
d("public flash.net.NetConnection::set proxyType");
|
|
this._proxyType = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "connectedProxyType", {get:function() {
|
|
k("public flash.net.NetConnection::get connectedProxyType");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "usingTLS", {get:function() {
|
|
d("public flash.net.NetConnection::get usingTLS");
|
|
return this._usingTLS;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "protocol", {get:function() {
|
|
k("public flash.net.NetConnection::get protocol");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "maxPeerConnections", {get:function() {
|
|
k("public flash.net.NetConnection::get maxPeerConnections");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetConnection::set maxPeerConnections");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "nearID", {get:function() {
|
|
k("public flash.net.NetConnection::get nearID");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "farID", {get:function() {
|
|
k("public flash.net.NetConnection::get farID");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "nearNonce", {get:function() {
|
|
k("public flash.net.NetConnection::get nearNonce");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "farNonce", {get:function() {
|
|
k("public flash.net.NetConnection::get farNonce");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f.prototype, "unconnectedPeerStreams", {get:function() {
|
|
k("public flash.net.NetConnection::get unconnectedPeerStreams");
|
|
}, enumerable:!0, configurable:!0});
|
|
f.prototype.ctor = function() {
|
|
this._uri = null;
|
|
this._connected = !1;
|
|
this._client = null;
|
|
this._proxyType = "none";
|
|
this._objectEncoding = f.defaultObjectEncoding;
|
|
this._usingTLS = !1;
|
|
c.instance.reportTelemetry({topic:"feature", feature:6});
|
|
};
|
|
f.prototype.invoke = function(a) {
|
|
return this._invoke(a >>> 0, Array.prototype.slice.call(arguments, 1));
|
|
};
|
|
f.prototype.invokeWithArgsArray = function(a, b) {
|
|
return this._invoke.call(this, a >>> 0, b);
|
|
};
|
|
f.prototype._invoke = function(a, b) {
|
|
var c = !1;
|
|
switch(a) {
|
|
case 2:
|
|
c = !0;
|
|
}
|
|
(c ? d : k)("private flash.net.NetConnection::_invoke (" + a + ")");
|
|
};
|
|
f.classInitializer = null;
|
|
f.initializer = null;
|
|
f.classSymbols = null;
|
|
f.instanceSymbols = ["close", "addHeader", "call"];
|
|
f._defaultObjectEncoding = 3;
|
|
return f;
|
|
}(f.events.EventDispatcher);
|
|
g.NetConnection = p;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.Debug.somewhatImplemented, a = b.AVM2.Runtime.wrapJSObject, c = b.AVM2.AS.flash.events.NetStatusEvent, n = b.FileLoadingService, p = function(b) {
|
|
function g(a, b) {
|
|
"undefined" === typeof b && (b = "connectToFMS");
|
|
f.events.EventDispatcher.instanceConstructorNoInitialize.call(this);
|
|
this._connection = a;
|
|
this._peerID = m(b);
|
|
this._id = f.display.DisplayObject.getNextSyncID();
|
|
this._isDirty = !0;
|
|
}
|
|
__extends(g, b);
|
|
g.prototype.dispose = function() {
|
|
k("public flash.net.NetStream::dispose");
|
|
};
|
|
g.prototype.play = function(a) {
|
|
this._url = n.instance.resolveUrl(a);
|
|
d("public flash.net.NetStream::play");
|
|
};
|
|
g.prototype.play2 = function(a) {
|
|
k("public flash.net.NetStream::play2");
|
|
};
|
|
Object.defineProperty(g.prototype, "info", {get:function() {
|
|
k("public flash.net.NetStream::get info");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "multicastInfo", {get:function() {
|
|
k("public flash.net.NetStream::get multicastInfo");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "soundTransform", {get:function() {
|
|
return this._soundTransform;
|
|
}, set:function(a) {
|
|
d("public flash.net.NetStream::set soundTransform");
|
|
this._soundTransform = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "checkPolicyFile", {get:function() {
|
|
return this._checkPolicyFile;
|
|
}, set:function(a) {
|
|
this._checkPolicyFile = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "client", {get:function() {
|
|
return this._client;
|
|
}, set:function(a) {
|
|
d("public flash.net.NetStream::set client");
|
|
this._client = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "objectEncoding", {get:function() {
|
|
k("public flash.net.NetStream::get objectEncoding");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "multicastPushNeighborLimit", {get:function() {
|
|
k("public flash.net.NetStream::get multicastPushNeighborLimit");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set multicastPushNeighborLimit");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "multicastWindowDuration", {get:function() {
|
|
k("public flash.net.NetStream::get multicastWindowDuration");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set multicastWindowDuration");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "multicastRelayMarginDuration", {get:function() {
|
|
k("public flash.net.NetStream::get multicastRelayMarginDuration");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set multicastRelayMarginDuration");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "multicastAvailabilityUpdatePeriod", {get:function() {
|
|
k("public flash.net.NetStream::get multicastAvailabilityUpdatePeriod");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set multicastAvailabilityUpdatePeriod");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "multicastFetchPeriod", {get:function() {
|
|
k("public flash.net.NetStream::get multicastFetchPeriod");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set multicastFetchPeriod");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "multicastAvailabilitySendToAll", {get:function() {
|
|
k("public flash.net.NetStream::get multicastAvailabilitySendToAll");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set multicastAvailabilitySendToAll");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "farID", {get:function() {
|
|
k("public flash.net.NetStream::get farID");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "nearNonce", {get:function() {
|
|
k("public flash.net.NetStream::get nearNonce");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "farNonce", {get:function() {
|
|
k("public flash.net.NetStream::get farNonce");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "peerStreams", {get:function() {
|
|
k("public flash.net.NetStream::get peerStreams");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "audioReliable", {get:function() {
|
|
k("public flash.net.NetStream::get audioReliable");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set audioReliable");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "videoReliable", {get:function() {
|
|
k("public flash.net.NetStream::get videoReliable");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set videoReliable");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "dataReliable", {get:function() {
|
|
k("public flash.net.NetStream::get dataReliable");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set dataReliable");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "audioSampleAccess", {get:function() {
|
|
k("public flash.net.NetStream::get audioSampleAccess");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set audioSampleAccess");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "videoSampleAccess", {get:function() {
|
|
k("public flash.net.NetStream::get videoSampleAccess");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set videoSampleAccess");
|
|
}, enumerable:!0, configurable:!0});
|
|
g.prototype.appendBytes = function(a) {
|
|
this._mediaSource && (this._mediaSourceBuffer || (this._mediaSourceBuffer = this._mediaSource.addSourceBuffer(this._contentTypeHint)), this._mediaSourceBuffer.appendBuffer(new Uint8Array(a._buffer, 0, a.length)));
|
|
d("public flash.net.NetStream::appendBytes");
|
|
};
|
|
g.prototype.appendBytesAction = function() {
|
|
var a;
|
|
a = m("endSequence");
|
|
"endSequence" === a && this._mediaSource && this._mediaSource.endOfStream();
|
|
d("public flash.net.NetStream::appendBytesAction");
|
|
};
|
|
Object.defineProperty(g.prototype, "useHardwareDecoder", {get:function() {
|
|
k("public flash.net.NetStream::get useHardwareDecoder");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set useHardwareDecoder");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "useJitterBuffer", {get:function() {
|
|
k("public flash.net.NetStream::get useJitterBuffer");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set useJitterBuffer");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "videoStreamSettings", {get:function() {
|
|
k("public flash.net.NetStream::get videoStreamSettings");
|
|
}, set:function(a) {
|
|
k("public flash.net.NetStream::set videoStreamSettings");
|
|
}, enumerable:!0, configurable:!0});
|
|
g.prototype.ctor = function(a, b) {
|
|
b = m(b);
|
|
d("public flash.net.NetStream::ctor");
|
|
this._mediaSource = this._contentTypeHint = null;
|
|
this._checkPolicyFile = !0;
|
|
this._videoElement = null;
|
|
var c, e;
|
|
this._videoReady = new Promise(function(a, b) {
|
|
c = a;
|
|
e = b;
|
|
});
|
|
this._videoReady.resolve = c;
|
|
this._videoReady.reject = e;
|
|
var h, f;
|
|
this._videoMetadataReady = new Promise(function(a, b) {
|
|
h = a;
|
|
f = b;
|
|
});
|
|
this._videoMetadataReady.resolve = h;
|
|
this._videoMetadataReady.reject = f;
|
|
this._videoState = {started:!1, buffer:"empty", bufferTime:.1};
|
|
};
|
|
g.prototype.invoke = function(a) {
|
|
return this._invoke(a >>> 0, Array.prototype.slice.call(arguments, 1));
|
|
};
|
|
g.prototype.invokeWithArgsArray = function(a, b) {
|
|
return this._invoke.call(this, a >>> 0, b);
|
|
};
|
|
g.prototype._invoke = function(a, b) {
|
|
var c = !1, e, h = this._videoElement;
|
|
switch(a) {
|
|
case 4:
|
|
this._videoState.bufferTime = b[0];
|
|
c = !0;
|
|
break;
|
|
case 202:
|
|
switch(b[1]) {
|
|
case "pause":
|
|
c = !0;
|
|
h && (!1 === b[3] || h.paused ? !0 !== b[3] && h.paused && h.play() : h.pause(), h.currentTime = b[4] / 1E3);
|
|
break;
|
|
case "seek":
|
|
c = !0, h && !h.paused && (h.currentTime = b[3] / 1E3);
|
|
}
|
|
break;
|
|
case 300:
|
|
e = h ? h.currentTime : 0;
|
|
c = !0;
|
|
break;
|
|
case 302:
|
|
e = this._videoState.bufferTime;
|
|
c = !0;
|
|
break;
|
|
case 303:
|
|
e = h ? h.duration : 0;
|
|
c = !0;
|
|
break;
|
|
case 305:
|
|
e = "full" === this._videoState.buffer ? 100 : "progress" === this._videoState.buffer ? 50 : 0;
|
|
c = !0;
|
|
break;
|
|
case 306:
|
|
e = 100, c = !0;
|
|
}
|
|
(c ? d : k)("NetStream._invoke (" + a + ")");
|
|
return e;
|
|
};
|
|
g.prototype._createVideoElement = function(b) {
|
|
var d = this;
|
|
/\.mp4$/i.test(b) && /Intel Mac OS X.*?Firefox\/\d+/.test(window.navigator.userAgent) && (b = "http://videos-cdn.mozilla.net/brand/Mozilla_2011_Story.webm");
|
|
var e = document.createElement("video");
|
|
e.preload = "metadata";
|
|
e.src = b;
|
|
e.addEventListener("play", function(b) {
|
|
d._videoState.started || (d._videoState.started = !0, d.dispatchEvent(new c(c.NET_STATUS, !1, !1, a({code:"NetStream.Play.Start", level:"status"}))));
|
|
});
|
|
e.addEventListener("ended", function(b) {
|
|
d._videoState.started = !1;
|
|
d.dispatchEvent(new c(c.NET_STATUS, !1, !1, a({code:"NetStream.Play.Stop", level:"status"})));
|
|
});
|
|
e.addEventListener("loadeddata", function(b) {
|
|
d._videoState.buffer = "full";
|
|
d.dispatchEvent(new c(c.NET_STATUS, !1, !1, a({code:"NetStream.Buffer.Full", level:"status"})));
|
|
});
|
|
e.addEventListener("progress", function(a) {
|
|
d._videoState.buffer = "progress";
|
|
});
|
|
e.addEventListener("waiting", function(b) {
|
|
d._videoState.buffer = "empty";
|
|
d.dispatchEvent(new c(c.NET_STATUS, !1, !1, a({code:"NetStream.Buffer.Empty", level:"status"})));
|
|
});
|
|
e.addEventListener("loadedmetadata", function(a) {
|
|
d._videoMetadataReady.resolve({videoWidth:e.videoWidth, videoHeight:e.videoHeight});
|
|
d._client && (a = {}, a.asSetPublicProperty("width", e.videoWidth), a.asSetPublicProperty("height", e.videoHeight), a.asSetPublicProperty("duration", e.duration), d._client.asCallPublicProperty("onMetaData", [a]));
|
|
});
|
|
e.addEventListener("error", function(b) {
|
|
d.dispatchEvent(new c(c.NET_STATUS, !1, !1, a({code:4 === b.target.error.code ? "NetStream.Play.NoSupportedTrackFound" : 3 === b.target.error.code ? "NetStream.Play.FileStructureInvalid" : "NetStream.Play.StreamNotFound", level:"error"})));
|
|
});
|
|
e.play();
|
|
this._videoElement = e;
|
|
this._videoReady.resolve(e);
|
|
};
|
|
g.classInitializer = null;
|
|
g.initializer = null;
|
|
g.classSymbols = null;
|
|
g.instanceSymbols = null;
|
|
g.DIRECT_CONNECTIONS = "directConnections";
|
|
g.CONNECT_TO_FMS = "connectToFMS";
|
|
return g;
|
|
}(f.events.EventDispatcher);
|
|
g.NetStream = p;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b(a, c, d, f, g, u, w, r, h, x, y, t, I, C, E, O, K, F, J, A, B, z, P, D, L) {
|
|
"undefined" === typeof P && (P = null);
|
|
"undefined" === typeof D && (D = null);
|
|
m(P);
|
|
m(D);
|
|
k("Dummy Constructor: public flash.net.NetStreamInfo");
|
|
}
|
|
__extends(b, a);
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.NetStreamInfo = d;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, b, d, e, f, g, m, w, r, h, x, y, t, I, C, E, O, K, F) {
|
|
k("Dummy Constructor: public flash.net.NetStreamMulticastInfo");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.NetStreamMulticastInfo = m;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.net.NetStreamPlayOptions");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.NetStreamPlayOptions = m;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, b) {
|
|
k("Dummy Constructor: public flash.net.Responder");
|
|
}
|
|
__extends(a, b);
|
|
a.prototype.ctor = function(a, b) {
|
|
this._result = a;
|
|
this._status = b;
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.Responder = m;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.Debug.somewhatImplemented, a = b.ObjectUtilities.createEmptyObject, c = function(c) {
|
|
function g() {
|
|
f.events.EventDispatcher.instanceConstructorNoInitialize.call(this);
|
|
this._data = a();
|
|
}
|
|
__extends(g, c);
|
|
g.deleteAll = function(a) {
|
|
m(a);
|
|
k("public flash.net.SharedObject::static deleteAll");
|
|
};
|
|
g.getDiskUsage = function(a) {
|
|
m(a);
|
|
k("public flash.net.SharedObject::static getDiskUsage");
|
|
};
|
|
g._create = function(a, c) {
|
|
var d = new g;
|
|
d._path = a;
|
|
d._data = c;
|
|
d._objectEncoding = g._defaultObjectEncoding;
|
|
b.Telemetry.instance.reportTelemetry({topic:"feature", feature:3});
|
|
return d;
|
|
};
|
|
g.getLocal = function(a, b, c) {
|
|
"undefined" === typeof b && (b = null);
|
|
a = m(a);
|
|
b = m(b);
|
|
a = (b || "") + "/" + a;
|
|
if (g._sharedObjects[a]) {
|
|
return g._sharedObjects[a];
|
|
}
|
|
b = sessionStorage.getItem(a);
|
|
b = g._create(a, b ? JSON.parse(b) : {});
|
|
return g._sharedObjects[a] = b;
|
|
};
|
|
g.getRemote = function(a, b, c, d) {
|
|
"undefined" === typeof b && (b = null);
|
|
m(a);
|
|
m(b);
|
|
k("public flash.net.SharedObject::static getRemote");
|
|
};
|
|
Object.defineProperty(g, "defaultObjectEncoding", {get:function() {
|
|
return g._defaultObjectEncoding;
|
|
}, set:function(a) {
|
|
g._defaultObjectEncoding = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "data", {get:function() {
|
|
return this._data;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "objectEncoding", {get:function() {
|
|
return this._objectEncoding;
|
|
}, set:function(a) {
|
|
this._objectEncoding = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "client", {get:function() {
|
|
k("public flash.net.SharedObject::get client");
|
|
}, set:function(a) {
|
|
k("public flash.net.SharedObject::set client");
|
|
}, enumerable:!0, configurable:!0});
|
|
g.prototype.setDirty = function(a) {
|
|
m(a);
|
|
d("public flash.net.SharedObject::setDirty");
|
|
};
|
|
g.prototype.invoke = function(a) {
|
|
return this._invoke(a >>> 0, Array.prototype.slice.call(arguments, 1));
|
|
};
|
|
g.prototype.invokeWithArgsArray = function(a, b) {
|
|
return this._invoke(a >>> 0, b);
|
|
};
|
|
g.prototype._invoke = function(a, b) {
|
|
var c = !1, f;
|
|
switch(a) {
|
|
case 4:
|
|
f = JSON.stringify(this._data).length - 2;
|
|
c = !0;
|
|
break;
|
|
case 6:
|
|
this._data = {};
|
|
sessionStorage.removeItem(this._path);
|
|
c = !0;
|
|
break;
|
|
case 2:
|
|
sessionStorage.setItem(this._path, JSON.stringify(this._data));
|
|
f = c = !0;
|
|
break;
|
|
case 3:
|
|
c = !0;
|
|
}
|
|
(c ? d : k)("private flash.net.SharedObject::_invoke (" + a + ")");
|
|
return f;
|
|
};
|
|
g.classInitializer = null;
|
|
g.initializer = null;
|
|
g.classSymbols = null;
|
|
g.instanceSymbols = null;
|
|
g._sharedObjects = a();
|
|
g._defaultObjectEncoding = 3;
|
|
return g;
|
|
}(f.events.EventDispatcher);
|
|
g.SharedObject = c;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.Debug.somewhatImplemented, a = b.AVM2.Errors, c = b.AVM2.Runtime.throwError, n = function(b) {
|
|
function e(a, b) {
|
|
"undefined" === typeof a && (a = null);
|
|
m(a);
|
|
k("Dummy Constructor: public flash.net.Socket");
|
|
}
|
|
__extends(e, b);
|
|
Object.defineProperty(e.prototype, "bytesAvailable", {get:function() {
|
|
k("public flash.net.Socket::get bytesAvailable");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "connected", {get:function() {
|
|
k("public flash.net.Socket::get connected");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "objectEncoding", {get:function() {
|
|
k("public flash.net.Socket::get objectEncoding");
|
|
}, set:function(a) {
|
|
k("public flash.net.Socket::set objectEncoding");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "endian", {get:function() {
|
|
k("public flash.net.Socket::get endian");
|
|
}, set:function(a) {
|
|
m(a);
|
|
k("public flash.net.Socket::set endian");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "bytesPending", {get:function() {
|
|
k("public flash.net.Socket::get bytesPending");
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype.readBytes = function(a, b, c) {
|
|
k("public flash.net.Socket::readBytes");
|
|
};
|
|
e.prototype.writeBytes = function(a, b, c) {
|
|
k("public flash.net.Socket::writeBytes");
|
|
};
|
|
e.prototype.writeBoolean = function(a) {
|
|
k("public flash.net.Socket::writeBoolean");
|
|
};
|
|
e.prototype.writeByte = function(a) {
|
|
k("public flash.net.Socket::writeByte");
|
|
};
|
|
e.prototype.writeShort = function(a) {
|
|
k("public flash.net.Socket::writeShort");
|
|
};
|
|
e.prototype.writeInt = function(a) {
|
|
k("public flash.net.Socket::writeInt");
|
|
};
|
|
e.prototype.writeUnsignedInt = function(a) {
|
|
k("public flash.net.Socket::writeUnsignedInt");
|
|
};
|
|
e.prototype.writeFloat = function(a) {
|
|
k("public flash.net.Socket::writeFloat");
|
|
};
|
|
e.prototype.writeDouble = function(a) {
|
|
k("public flash.net.Socket::writeDouble");
|
|
};
|
|
e.prototype.writeMultiByte = function(a, b) {
|
|
m(a);
|
|
m(b);
|
|
k("public flash.net.Socket::writeMultiByte");
|
|
};
|
|
e.prototype.writeUTF = function(a) {
|
|
m(a);
|
|
k("public flash.net.Socket::writeUTF");
|
|
};
|
|
e.prototype.writeUTFBytes = function(a) {
|
|
m(a);
|
|
k("public flash.net.Socket::writeUTFBytes");
|
|
};
|
|
e.prototype.readBoolean = function() {
|
|
k("public flash.net.Socket::readBoolean");
|
|
};
|
|
e.prototype.readByte = function() {
|
|
k("public flash.net.Socket::readByte");
|
|
};
|
|
e.prototype.readUnsignedByte = function() {
|
|
k("public flash.net.Socket::readUnsignedByte");
|
|
};
|
|
e.prototype.readShort = function() {
|
|
k("public flash.net.Socket::readShort");
|
|
};
|
|
e.prototype.readUnsignedShort = function() {
|
|
k("public flash.net.Socket::readUnsignedShort");
|
|
};
|
|
e.prototype.readInt = function() {
|
|
k("public flash.net.Socket::readInt");
|
|
};
|
|
e.prototype.readUnsignedInt = function() {
|
|
k("public flash.net.Socket::readUnsignedInt");
|
|
};
|
|
e.prototype.readFloat = function() {
|
|
k("public flash.net.Socket::readFloat");
|
|
};
|
|
e.prototype.readDouble = function() {
|
|
k("public flash.net.Socket::readDouble");
|
|
};
|
|
e.prototype.readMultiByte = function(a, b) {
|
|
m(b);
|
|
k("public flash.net.Socket::readMultiByte");
|
|
};
|
|
e.prototype.readUTF = function() {
|
|
k("public flash.net.Socket::readUTF");
|
|
};
|
|
e.prototype.readUTFBytes = function(a) {
|
|
k("public flash.net.Socket::readUTFBytes");
|
|
};
|
|
e.prototype.flush = function() {
|
|
k("public flash.net.Socket::flush");
|
|
};
|
|
e.prototype.writeObject = function(a) {
|
|
k("public flash.net.Socket::writeObject");
|
|
};
|
|
e.prototype.readObject = function() {
|
|
k("public flash.net.Socket::readObject");
|
|
};
|
|
e.prototype.internalGetSecurityErrorMessage = function(a, b) {
|
|
m(a);
|
|
d("flash.net.Socket::internalGetSecurityErrorMessage");
|
|
return "SecurityErrorEvent";
|
|
};
|
|
e.prototype.internalConnect = function(b, e) {
|
|
b = m(b);
|
|
e |= 0;
|
|
d("flash.net.Socket::internalConnect");
|
|
c("SecurityError", a.SocketConnectError, b, e);
|
|
};
|
|
e.prototype.didFailureOccur = function() {
|
|
d("flash.net.Socket::didFailureOccur");
|
|
return!0;
|
|
};
|
|
e.classInitializer = null;
|
|
e.initializer = null;
|
|
e.classSymbols = null;
|
|
e.instanceSymbols = null;
|
|
return e;
|
|
}(f.events.EventDispatcher);
|
|
g.Socket = n;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a) {
|
|
k("Dummy Constructor: public flash.net.URLLoader");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = "data dataFormat bytesLoaded bytesTotal load close".split(" ");
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.URLLoader = m;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(t) {
|
|
var s = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.AVM2.Runtime.throwError, a = function(a) {
|
|
function b(a) {
|
|
"undefined" === typeof a && (a = null);
|
|
m(a);
|
|
s("Dummy Constructor: public flash.net.URLRequest");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "url", {get:function() {
|
|
return this._url;
|
|
}, set:function(a) {
|
|
this._url = a = m(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "data", {get:function() {
|
|
return this._data;
|
|
}, set:function(a) {
|
|
this._data = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "method", {get:function() {
|
|
return this._method;
|
|
}, set:function(a) {
|
|
a = m(a);
|
|
"get" !== a && "GET" !== a && "post" !== a && "POST" !== a && d("ArgumentError", k.Errors.InvalidArgumentError);
|
|
this._method = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "contentType", {get:function() {
|
|
return this._contentType;
|
|
}, set:function(a) {
|
|
this._contentType = a = m(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "requestHeaders", {get:function() {
|
|
return this._requestHeaders;
|
|
}, set:function(a) {
|
|
Array.isArray(a) || d("ArgumentError", k.Errors.InvalidArgumentError, "value");
|
|
this._requestHeaders = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "digest", {get:function() {
|
|
return this._digest;
|
|
}, set:function(a) {
|
|
this._digest = a = m(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype._toFileRequest = function() {
|
|
var a = {};
|
|
a.url = this._url;
|
|
a.method = this._method;
|
|
a.checkPolicyFile = this._checkPolicyFile;
|
|
if (this._data) {
|
|
if (a.mimeType = this._contentType, f.utils.ByteArray.isType(this._data)) {
|
|
a.data = new Uint8Array(this._data._buffer, 0, this._data.length);
|
|
} else {
|
|
var b = this._data.asGetPublicProperty("toString").call(this._data);
|
|
if ("GET" === this._method) {
|
|
var c = a.url.lastIndexOf("?");
|
|
a.url = (0 > c ? a.url : a.url.substring(0, c)) + "?" + b;
|
|
} else {
|
|
a.data = b;
|
|
}
|
|
}
|
|
}
|
|
return a;
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = function() {
|
|
this._url = null;
|
|
this._method = "GET";
|
|
this._digest = this._data = null;
|
|
this._contentType = "application/x-www-form-urlencoded";
|
|
this._requestHeaders = null;
|
|
this._checkPolicyFile = !0;
|
|
};
|
|
b.classSymbols = null;
|
|
b.bindings = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
t.URLRequest = a;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.AVM2.Runtime.asCoerceString, m = function(b) {
|
|
function a(a, b) {
|
|
"undefined" === typeof a && (a = "");
|
|
"undefined" === typeof b && (b = "");
|
|
k(a);
|
|
k(b);
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = ["name!", "value!"];
|
|
return a;
|
|
}(g.ASNative);
|
|
f.URLRequestHeader = m;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.FileLoadingService, a = b.AVM2.Runtime.throwError, c = b.AVM2.AS.flash.utils, n = function(b) {
|
|
function e() {
|
|
s("Dummy Constructor: public flash.net.URLStream");
|
|
}
|
|
__extends(e, b);
|
|
Object.defineProperty(e.prototype, "connected", {get:function() {
|
|
return this._connected;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "bytesAvailable", {get:function() {
|
|
return this._buffer.length - this._buffer.position;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "objectEncoding", {get:function() {
|
|
return this._buffer.objectEncoding;
|
|
}, set:function(a) {
|
|
this._buffer.objectEncoding = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "endian", {get:function() {
|
|
return this._buffer.endian;
|
|
}, set:function(a) {
|
|
a = m(a);
|
|
this._buffer.endian = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "diskCacheEnabled", {get:function() {
|
|
s("public flash.net.URLStream::get diskCacheEnabled");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "position", {get:function() {
|
|
return this._buffer.position;
|
|
}, set:function(a) {
|
|
this._buffer.position = +a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "length", {get:function() {
|
|
return this._buffer.length;
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype.load = function(a) {
|
|
var b = f.events.Event, c = f.events.IOErrorEvent, e = f.events.ProgressEvent, g = f.events.HTTPStatusEvent, h = d.instance.createSession(), k = this;
|
|
h.onprogress = function(a, b) {
|
|
var c = k._buffer.position;
|
|
k._buffer.position = k._writePosition;
|
|
k._buffer.writeRawBytes(a);
|
|
k._writePosition = k._buffer.position;
|
|
k._buffer.position = c;
|
|
k.dispatchEvent(new e(e.PROGRESS, !1, !1, b.bytesLoaded, b.bytesTotal));
|
|
};
|
|
h.onerror = function(a) {
|
|
k._connected = !1;
|
|
k.dispatchEvent(new c(c.IO_ERROR, !1, !1, a));
|
|
};
|
|
h.onopen = function() {
|
|
k._connected = !0;
|
|
k.dispatchEvent(new b(b.OPEN, !1, !1));
|
|
};
|
|
h.onhttpstatus = function(a, b, c) {
|
|
b = new g(g.HTTP_STATUS, !1, !1, b);
|
|
var d = [];
|
|
c.split(/(?:\n|\r?\n)/g).forEach(function(b) {
|
|
if (b = /^([^:]+): (.*)$/.exec(b)) {
|
|
d.push(new f.net.URLRequestHeader(b[1], b[2])), "Location" === b[1] && (a = b[2]);
|
|
}
|
|
});
|
|
b.asSetPublicProperty("responseHeaders", d);
|
|
b.asSetPublicProperty("responseURL", a);
|
|
k.dispatchEvent(b);
|
|
};
|
|
h.onclose = function() {
|
|
k._connected = !1;
|
|
k.dispatchEvent(new b(b.COMPLETE, !1, !1));
|
|
};
|
|
h.open(a._toFileRequest());
|
|
this._session = h;
|
|
};
|
|
e.prototype.readBytes = function(b, c, d) {
|
|
"undefined" === typeof c && (c = 0);
|
|
"undefined" === typeof d && (d = 0);
|
|
c >>>= 0;
|
|
d >>>= 0;
|
|
0 > d && a("ArgumentError", k.Errors.InvalidArgumentError, "length");
|
|
this._buffer.readBytes(b, c, d);
|
|
};
|
|
e.prototype.readBoolean = function() {
|
|
s("public flash.net.URLStream::readBoolean");
|
|
};
|
|
e.prototype.readByte = function() {
|
|
return this._buffer.readByte();
|
|
};
|
|
e.prototype.readUnsignedByte = function() {
|
|
s("public flash.net.URLStream::readUnsignedByte");
|
|
};
|
|
e.prototype.readShort = function() {
|
|
s("public flash.net.URLStream::readShort");
|
|
};
|
|
e.prototype.readUnsignedShort = function() {
|
|
return this._buffer.readUnsignedShort();
|
|
};
|
|
e.prototype.readUnsignedInt = function() {
|
|
s("public flash.net.URLStream::readUnsignedInt");
|
|
};
|
|
e.prototype.readInt = function() {
|
|
s("public flash.net.URLStream::readInt");
|
|
};
|
|
e.prototype.readFloat = function() {
|
|
s("public flash.net.URLStream::readFloat");
|
|
};
|
|
e.prototype.readDouble = function() {
|
|
s("public flash.net.URLStream::readDouble");
|
|
};
|
|
e.prototype.readMultiByte = function(a, b) {
|
|
m(b);
|
|
s("public flash.net.URLStream::readMultiByte");
|
|
};
|
|
e.prototype.readUTF = function() {
|
|
return this._buffer.readUTF();
|
|
};
|
|
e.prototype.readUTFBytes = function(a) {
|
|
return this._buffer.readUTFBytes(a);
|
|
};
|
|
e.prototype.close = function() {
|
|
this._session.close();
|
|
};
|
|
e.prototype.readObject = function() {
|
|
s("public flash.net.URLStream::readObject");
|
|
};
|
|
e.prototype.stop = function() {
|
|
s("public flash.net.URLStream::stop");
|
|
};
|
|
e.classInitializer = null;
|
|
e.initializer = function() {
|
|
this._buffer = new c.ByteArray;
|
|
this._writePosition = 0;
|
|
this._connected = !1;
|
|
};
|
|
e.classSymbols = null;
|
|
e.instanceSymbols = null;
|
|
return e;
|
|
}(f.events.EventDispatcher);
|
|
g.URLStream = n;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a) {
|
|
k("Dummy Constructor: public flash.net.URLVariables");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = ["decode!"];
|
|
return a;
|
|
}(g.ASNative);
|
|
f.URLVariables = m;
|
|
})(f.net || (f.net = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.sensors.Accelerometer");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "isSupported", {get:function() {
|
|
k("public flash.sensors.Accelerometer::get isSupported");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "muted", {get:function() {
|
|
k("public flash.sensors.Accelerometer::get muted");
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.setRequestedUpdateInterval = function(a) {
|
|
k("public flash.sensors.Accelerometer::setRequestedUpdateInterval");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.Accelerometer = m;
|
|
})(f.sensors || (f.sensors = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.sensors.Geolocation");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "isSupported", {get:function() {
|
|
k("public flash.sensors.Geolocation::get isSupported");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "muted", {get:function() {
|
|
k("public flash.sensors.Geolocation::get muted");
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.setRequestedUpdateInterval = function(a) {
|
|
k("public flash.sensors.Geolocation::setRequestedUpdateInterval");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.Geolocation = m;
|
|
})(f.sensors || (f.sensors = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.AVM2.Runtime.AVM2, a = b.AVM2.Runtime.ApplicationDomain, c = b.AVM2.ABC.Multiname, n = function(b) {
|
|
function e(b) {
|
|
"undefined" === typeof b && (b = null);
|
|
b instanceof a ? this._runtimeDomain = b : (b = b ? b._runtimeDomain : d.currentDomain().system, this._runtimeDomain = new a(b.vm, b, 2, !1));
|
|
}
|
|
__extends(e, b);
|
|
Object.defineProperty(e, "currentDomain", {get:function() {
|
|
return new e(d.currentDomain());
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e, "MIN_DOMAIN_MEMORY_LENGTH", {get:function() {
|
|
k("public flash.system.ApplicationDomain::get MIN_DOMAIN_MEMORY_LENGTH");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "parentDomain", {get:function() {
|
|
return this._runtimeDomain.base ? new e(this._runtimeDomain.base) : null;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(e.prototype, "domainMemory", {get:function() {
|
|
k("public flash.system.ApplicationDomain::get domainMemory");
|
|
}, set:function(a) {
|
|
k("public flash.system.ApplicationDomain::set domainMemory");
|
|
}, enumerable:!0, configurable:!0});
|
|
e.prototype.getDefinition = function(a) {
|
|
return(a = m(a)) ? (a = a.replace("::", "."), this._runtimeDomain.getProperty(c.fromSimpleName(a), !0, !0)) : null;
|
|
};
|
|
e.prototype.hasDefinition = function(a) {
|
|
return(a = m(a)) ? (a = a.replace("::", "."), !!this._runtimeDomain.findDomainProperty(c.fromSimpleName(a), !1, !1)) : !1;
|
|
};
|
|
e.prototype.getQualifiedDefinitionNames = function() {
|
|
k("public flash.system.ApplicationDomain::getQualifiedDefinitionNames");
|
|
};
|
|
e.classInitializer = null;
|
|
e.initializer = null;
|
|
e.classSymbols = null;
|
|
e.instanceSymbols = null;
|
|
return e;
|
|
}(g.ASNative);
|
|
f.ApplicationDomain = n;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.Debug.somewhatImplemented, a = b.ObjectUtilities.toKeyValueArray, c = function(b) {
|
|
function c() {
|
|
k("Dummy Constructor: public flash.system.Capabilities");
|
|
}
|
|
__extends(c, b);
|
|
Object.defineProperty(c, "isEmbeddedInAcrobat", {get:function() {
|
|
k("public flash.system.Capabilities::get isEmbeddedInAcrobat");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasEmbeddedVideo", {get:function() {
|
|
k("public flash.system.Capabilities::get hasEmbeddedVideo");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasAudio", {get:function() {
|
|
k("public flash.system.Capabilities::get hasAudio");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "avHardwareDisable", {get:function() {
|
|
k("public flash.system.Capabilities::get avHardwareDisable");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasAccessibility", {get:function() {
|
|
d("public flash.system.Capabilities::get hasAccessibility");
|
|
return c._hasAccessibility;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasAudioEncoder", {get:function() {
|
|
k("public flash.system.Capabilities::get hasAudioEncoder");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasMP3", {get:function() {
|
|
k("public flash.system.Capabilities::get hasMP3");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasPrinting", {get:function() {
|
|
k("public flash.system.Capabilities::get hasPrinting");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasScreenBroadcast", {get:function() {
|
|
k("public flash.system.Capabilities::get hasScreenBroadcast");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasScreenPlayback", {get:function() {
|
|
k("public flash.system.Capabilities::get hasScreenPlayback");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasStreamingAudio", {get:function() {
|
|
k("public flash.system.Capabilities::get hasStreamingAudio");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasStreamingVideo", {get:function() {
|
|
k("public flash.system.Capabilities::get hasStreamingVideo");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasVideoEncoder", {get:function() {
|
|
k("public flash.system.Capabilities::get hasVideoEncoder");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "isDebugger", {get:function() {
|
|
d("public flash.system.Capabilities::get isDebugger");
|
|
return c._isDebugger;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "localFileReadDisable", {get:function() {
|
|
k("public flash.system.Capabilities::get localFileReadDisable");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "language", {get:function() {
|
|
d("public flash.system.Capabilities::get language");
|
|
return c._language;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "manufacturer", {get:function() {
|
|
d("public flash.system.Capabilities::get manufacturer");
|
|
return c._manufacturer;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "os", {get:function() {
|
|
if (null === c._os) {
|
|
var a, b = window.navigator.userAgent;
|
|
0 < b.indexOf("Macintosh") ? a = "Mac OS 10.5.2" : 0 < b.indexOf("Windows") ? a = "Windows XP" : 0 < b.indexOf("Linux") ? a = "Linux" : /(iPad|iPhone|iPod|Android)/.test(b) ? a = "iPhone3,1" : k("public flash.system.Capabilities::get os");
|
|
c._os = a;
|
|
}
|
|
return c._os;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "cpuArchitecture", {get:function() {
|
|
k("public flash.system.Capabilities::get cpuArchitecture");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "playerType", {get:function() {
|
|
d("public flash.system.Capabilities::get playerType");
|
|
return c._playerType;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "serverString", {get:function() {
|
|
var b = a({OS:c.os}).map(function(a) {
|
|
return a[0] + "=" + encodeURIComponent(a[1]);
|
|
}).join("&");
|
|
d("Capabilities.serverString: " + b);
|
|
return b;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "version", {get:function() {
|
|
return c._version;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "screenColor", {get:function() {
|
|
k("public flash.system.Capabilities::get screenColor");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "pixelAspectRatio", {get:function() {
|
|
k("public flash.system.Capabilities::get pixelAspectRatio");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "screenDPI", {get:function() {
|
|
k("public flash.system.Capabilities::get screenDPI");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "screenResolutionX", {get:function() {
|
|
d("public flash.system.Capabilities::get screenResolutionX");
|
|
return window.screen.width;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "screenResolutionY", {get:function() {
|
|
d("public flash.system.Capabilities::get screenResolutionY");
|
|
return window.screen.height;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "touchscreenType", {get:function() {
|
|
k("public flash.system.Capabilities::get touchscreenType");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasIME", {get:function() {
|
|
k("public flash.system.Capabilities::get hasIME");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "hasTLS", {get:function() {
|
|
k("public flash.system.Capabilities::get hasTLS");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "maxLevelIDC", {get:function() {
|
|
k("public flash.system.Capabilities::get maxLevelIDC");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "supports32BitProcesses", {get:function() {
|
|
k("public flash.system.Capabilities::get supports32BitProcesses");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "supports64BitProcesses", {get:function() {
|
|
k("public flash.system.Capabilities::get supports64BitProcesses");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c, "_internal", {get:function() {
|
|
k("public flash.system.Capabilities::get _internal");
|
|
}, enumerable:!0, configurable:!0});
|
|
c.hasMultiChannelAudio = function(a) {
|
|
m(a);
|
|
k("public flash.system.Capabilities::static hasMultiChannelAudio");
|
|
};
|
|
c.classInitializer = null;
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
c._hasAccessibility = !1;
|
|
c._isDebugger = !1;
|
|
c._language = "en";
|
|
c._manufacturer = "Mozilla Research";
|
|
c._os = null;
|
|
c._playerType = "PlugIn";
|
|
c._version = "SHUMWAY 10,0,0,0";
|
|
return c;
|
|
}(g.ASNative);
|
|
f.Capabilities = c;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function c() {
|
|
k("Dummy Constructor: packageInternal flash.system.FSCommand");
|
|
}
|
|
__extends(c, a);
|
|
c._fscommand = function(a, c) {
|
|
a = m(a);
|
|
c = m(c);
|
|
console.log("FSCommand: " + a + "; " + c);
|
|
a = a.toLowerCase();
|
|
if ("debugger" === a) {
|
|
debugger;
|
|
} else {
|
|
b.AVM2.Runtime.AVM2.instance.globals["Shumway.Player.Utils"].executeFSCommand(a, c);
|
|
}
|
|
};
|
|
c.classInitializer = null;
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
return c;
|
|
}(g.ASNative);
|
|
f.FSCommand = d;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.system.ImageDecodingPolicy");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.ON_DEMAND = "onDemand";
|
|
a.ON_LOAD = "onLoad";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.ImageDecodingPolicy = m;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, b, d) {
|
|
k("Dummy Constructor: public flash.system.LoaderContext");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.LoaderContext = m;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, b, d, e) {
|
|
k("Dummy Constructor: public flash.system.JPEGLoaderContext");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.system.LoaderContext);
|
|
g.JPEGLoaderContext = m;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.system.MessageChannel");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "messageAvailable", {get:function() {
|
|
k("public flash.system.MessageChannel::get messageAvailable");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "state", {get:function() {
|
|
k("public flash.system.MessageChannel::get state");
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.send = function(a, b) {
|
|
k("public flash.system.MessageChannel::send");
|
|
};
|
|
a.prototype.receive = function(a) {
|
|
k("public flash.system.MessageChannel::receive");
|
|
};
|
|
a.prototype.close = function() {
|
|
k("public flash.system.MessageChannel::close");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.MessageChannel = m;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.system.MessageChannelState");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.OPEN = "open";
|
|
a.CLOSING = "closing";
|
|
a.CLOSED = "closed";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.MessageChannelState = m;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = b.Debug.somewhatImplemented, a = function(a) {
|
|
function f() {
|
|
k("Dummy Constructor: public flash.system.Security");
|
|
}
|
|
__extends(f, a);
|
|
Object.defineProperty(f, "exactSettings", {get:function() {
|
|
return f._exactSettings;
|
|
}, set:function(a) {
|
|
f._exactSettings = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f, "disableAVM1Loading", {get:function() {
|
|
k("public flash.system.Security::get disableAVM1Loading");
|
|
}, set:function(a) {
|
|
k("public flash.system.Security::set disableAVM1Loading");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f, "sandboxType", {get:function() {
|
|
d("public flash.system.Security::get sandboxType");
|
|
return f._sandboxType;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(f, "pageDomain", {get:function() {
|
|
d("public flash.system.Security::get pageDomain");
|
|
var a = b.FileLoadingService.instance.resolveUrl("/").split("/");
|
|
a.pop();
|
|
return a.pop();
|
|
}, enumerable:!0, configurable:!0});
|
|
f.allowDomain = function() {
|
|
d('public flash.system.Security::static allowDomain ["' + Array.prototype.join.call(arguments, '", "') + '"]');
|
|
};
|
|
f.allowInsecureDomain = function() {
|
|
d("public flash.system.Security::static allowInsecureDomain");
|
|
};
|
|
f.loadPolicyFile = function(a) {
|
|
m(a);
|
|
d("public flash.system.Security::static loadPolicyFile");
|
|
};
|
|
f.showSettings = function(a) {
|
|
"undefined" === typeof a && (a = "default");
|
|
m(a);
|
|
k("public flash.system.Security::static showSettings");
|
|
};
|
|
f.duplicateSandboxBridgeInputArguments = function(a, b) {
|
|
k("public flash.system.Security::static duplicateSandboxBridgeInputArguments");
|
|
};
|
|
f.duplicateSandboxBridgeOutputArgument = function(a, b) {
|
|
k("public flash.system.Security::static duplicateSandboxBridgeOutputArgument");
|
|
};
|
|
f.classInitializer = null;
|
|
f.initializer = null;
|
|
f.classSymbols = null;
|
|
f.instanceSymbols = null;
|
|
f.REMOTE = "remote";
|
|
f.LOCAL_WITH_FILE = "localWithFile";
|
|
f.LOCAL_WITH_NETWORK = "localWithNetwork";
|
|
f.LOCAL_TRUSTED = "localTrusted";
|
|
f.APPLICATION = "application";
|
|
f._exactSettings = !1;
|
|
f._sandboxType = "remote";
|
|
return f;
|
|
}(g.ASNative);
|
|
f.Security = a;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.system.SecurityDomain");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "currentDomain", {get:function() {
|
|
k("public flash.system.SecurityDomain::get currentDomain");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "domainID", {get:function() {
|
|
k("public flash.system.SecurityDomain::get domainID");
|
|
}, enumerable:!0, configurable:!0});
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.SecurityDomain = m;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.system.SecurityPanel");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.DEFAULT = "default";
|
|
a.PRIVACY = "privacy";
|
|
a.LOCAL_STORAGE = "localStorage";
|
|
a.MICROPHONE = "microphone";
|
|
a.CAMERA = "camera";
|
|
a.DISPLAY = "display";
|
|
a.SETTINGS_MANAGER = "settingsManager";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.SecurityPanel = m;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.system.TouchscreenType");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.FINGER = "finger";
|
|
a.STYLUS = "stylus";
|
|
a.NONE = "none";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.TouchscreenType = m;
|
|
})(f.system || (f.system = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.fromNumber = function(a) {
|
|
switch(a) {
|
|
case 1:
|
|
return d.NORMAL;
|
|
case 2:
|
|
return d.ADVANCED;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
d.toNumber = function(a) {
|
|
switch(a) {
|
|
case d.NORMAL:
|
|
return 1;
|
|
case d.ADVANCED:
|
|
return 2;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.NORMAL = "normal";
|
|
d.ADVANCED = "advanced";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.AntiAliasType = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.REGULAR = "regular";
|
|
d.BOLD = "bold";
|
|
d.ITALIC = "italic";
|
|
d.BOLD_ITALIC = "boldItalic";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.FontStyle = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.EMBEDDED = "embedded";
|
|
d.EMBEDDED_CFF = "embeddedCFF";
|
|
d.DEVICE = "device";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.FontType = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(k) {
|
|
var s = b.Debug.somewhatImplemented, m = b.AVM2.Runtime.asCoerceString, d = f.text.FontStyle, a = f.text.FontType, c = function(c) {
|
|
function g() {
|
|
}
|
|
__extends(g, c);
|
|
g._getFontMetrics = function(a) {
|
|
if (!this._deviceFontMetrics) {
|
|
var b = self.navigator.userAgent;
|
|
-1 < b.indexOf("Windows") ? this._deviceFontMetrics = g.DEVICE_FONT_METRICS_WIN : this._deviceFontMetrics = /(Macintosh|iPad|iPhone|iPod|Android)/.test(b) ? this.DEVICE_FONT_METRICS_MAC : this.DEVICE_FONT_METRICS_LINUX;
|
|
}
|
|
return this._deviceFontMetrics[g.resolveFontName(a)];
|
|
};
|
|
g.resolveFontName = function(a) {
|
|
return "_sans" === a ? "sans-serif" : "_serif" === a ? "serif" : "_typewriter" === a ? "monospace" : a;
|
|
};
|
|
g.getBySymbolId = function(a) {
|
|
return this._fontsBySymbolId[a];
|
|
};
|
|
g.getByName = function(b) {
|
|
b = b.toLowerCase();
|
|
var c = this._fontsByName[b];
|
|
c || (c = new g, c._fontName = b, c._fontStyle = d.REGULAR, c._fontType = a.DEVICE, this._fontsByName[b] = c);
|
|
c._fontType === a.DEVICE && (b = g._getFontMetrics(b)) && (c.ascent = b[0], c.descent = b[1], c.leading = b[2]);
|
|
return c;
|
|
};
|
|
g.getDefaultFont = function() {
|
|
return g.getByName("times roman");
|
|
};
|
|
g.enumerateFonts = function(a) {
|
|
s("public flash.text.Font::static enumerateFonts");
|
|
return g._fonts.slice();
|
|
};
|
|
g.registerFont = function(a) {
|
|
s("Font.registerFont");
|
|
};
|
|
Object.defineProperty(g.prototype, "fontName", {get:function() {
|
|
return this._fontName;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "fontStyle", {get:function() {
|
|
return this._fontStyle;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "fontType", {get:function() {
|
|
return this._fontType;
|
|
}, enumerable:!0, configurable:!0});
|
|
g.prototype.hasGlyphs = function(a) {
|
|
m(a);
|
|
s("Font#hasGlyphs");
|
|
return!0;
|
|
};
|
|
g.classInitializer = function() {
|
|
g._fonts = [];
|
|
g._fontsBySymbolId = b.ObjectUtilities.createMap();
|
|
g._fontsByName = b.ObjectUtilities.createMap();
|
|
g.DEVICE_FONT_METRICS_WIN = {serif:[1, .25, 0], "sans-serif":[1, .25, 0], monospace:[1, .25, 0], "birch std":[.9167, .25, 0], "blackoak std":[1, .3333, 0], "chaparral pro":[.8333, .3333, 0], "chaparral pro light":[.8333, .3333, 0], "charlemagne std":[.9167, .25, 0], "cooper std black":[.9167, .25, 0], "giddyup std":[.8333, .3333, 0], "hobo std":[1.0833, .3333, 0], "kozuka gothic pro b":[1, .4167, 0], "kozuka gothic pro el":[1.0833, .25, 0], "kozuka gothic pro h":[1, .4167, 0], "kozuka gothic pro l":[1,
|
|
.3333, 0], "kozuka gothic pro m":[1.0833, .3333, 0], "kozuka gothic pro r":[1, .3333, 0], "kozuka mincho pro b":[1.0833, .25, 0], "kozuka mincho pro el":[1.0833, .25, 0], "kozuka mincho pro h":[1.1667, .25, 0], "kozuka mincho pro l":[1.0833, .25, 0], "kozuka mincho pro m":[1.0833, .25, 0], "kozuka mincho pro r":[1.0833, .25, 0], "mesquite std":[.9167, .25, 0], "minion pro cond":[1, .3333, 0], "minion pro med":[1, .3333, 0], "minion pro smbd":[1, .3333, 0], "myriad arabic":[1, .4167,
|
|
0], "nueva std":[.75, .25, 0], "nueva std cond":[.75, .25, 0], "ocr a std":[.8333, .25, 0], "orator std":[1.0833, .25, 0], "poplar std":[.9167, .25, 0], "prestige elite std":[.9167, .25, 0], "rosewood std regular":[.8333, .3333, 0], "stencil std":[1, .3333, 0], "trajan pro":[1, .25, 0], "kozuka gothic pr6n b":[1.4167, .4167, 0], "kozuka gothic pr6n el":[1.4167, .3333, 0], "kozuka gothic pr6n h":[1.4167, .4167, 0], "kozuka gothic pr6n l":[1.4167, .3333, 0], "kozuka gothic pr6n m":[1.5,
|
|
.3333, 0], "kozuka gothic pr6n r":[1.4167, .3333, 0], "kozuka mincho pr6n b":[1.3333, .3333, 0], "kozuka mincho pr6n el":[1.3333, .3333, 0], "kozuka mincho pr6n h":[1.4167, .3333, 0], "kozuka mincho pr6n l":[1.3333, .3333, 0], "kozuka mincho pr6n m":[1.3333, .3333, 0], "kozuka mincho pr6n r":[1.3333, .3333, 0], "letter gothic std":[1, .25, 0], "minion pro":[1, .3333, 0], "myriad hebrew":[.8333, .3333, 0], "myriad pro":[.9167, .25, 0], "myriad pro cond":[.9167, .25, 0], "myriad pro light":[1,
|
|
.25, 0], marlett:[1, 0, 0], arial:[1, .25, 0], "arabic transparent":[1, .25, 0], "arial baltic":[1, .25, 0], "arial ce":[1, .25, 0], "arial cyr":[1, .25, 0], "arial greek":[1, .25, 0], "arial tur":[1, .25, 0], batang:[.8333, .1667, 0], batangche:[.8333, .1667, 0], gungsuh:[.8333, .1667, 0], gungsuhche:[.8333, .1667, 0], "courier new":[1, .25, 0], "courier new baltic":[1, .25, 0], "courier new ce":[1, .25, 0], "courier new cyr":[1, .25, 0], "courier new greek":[1, .25, 0], "courier new tur":[1,
|
|
.25, 0], daunpenh:[.6667, .6667, 0], dokchampa:[1.4167, .5833, 0], "estrangelo edessa":[.75, .3333, 0], euphemia:[1.0833, .3333, 0], gautami:[1.1667, .8333, 0], vani:[1.0833, .75, 0], gulim:[.8333, .1667, 0], gulimche:[.8333, .1667, 0], dotum:[.8333, .1667, 0], dotumche:[.8333, .1667, 0], impact:[1.0833, .25, 0], "iskoola pota":[1, .3333, 0], kalinga:[1.0833, .5, 0], kartika:[1, .4167, 0], "khmer ui":[1.0833, .3333, 0], "lao ui":[1, .25, 0], latha:[1.0833, .4167, 0], "lucida console":[.75,
|
|
.25, 0], "malgun gothic":[1, .25, 0], mangal:[1.0833, .3333, 0], meiryo:[1.0833, .4167, 0], "meiryo ui":[1, .25, 0], "microsoft himalaya":[.5833, .4167, 0], "microsoft jhenghei":[1, .3333, 0], "microsoft yahei":[1.0833, .3333, 0], mingliu:[.8333, .1667, 0], pmingliu:[.8333, .1667, 0], mingliu_hkscs:[.8333, .1667, 0], "mingliu-extb":[.8333, .1667, 0], "pmingliu-extb":[.8333, .1667, 0], "mingliu_hkscs-extb":[.8333, .1667, 0], "mongolian baiti":[.8333, .25, 0], "ms gothic":[.8333, .1667,
|
|
0], "ms pgothic":[.8333, .1667, 0], "ms ui gothic":[.8333, .1667, 0], "ms mincho":[.8333, .1667, 0], "ms pmincho":[.8333, .1667, 0], "mv boli":[1.1667, .25, 0], "microsoft new tai lue":[1, .4167, 0], nyala:[.9167, .3333, 0], "microsoft phagspa":[1.0833, .25, 0], "plantagenet cherokee":[1, .4167, 0], raavi:[1.0833, .6667, 0], "segoe script":[1.0833, .5, 0], "segoe ui":[1, .25, 0], "segoe ui semibold":[1, .25, 0], "segoe ui light":[1, .25, 0], "segoe ui symbol":[1, .25, 0], shruti:[1.0833,
|
|
.5, 0], simsun:[.8333, .1667, 0], nsimsun:[.8333, .1667, 0], "simsun-extb":[.8333, .1667, 0], sylfaen:[1, .3333, 0], "microsoft tai le":[1, .3333, 0], "times new roman":[1, .25, 0], "times new roman baltic":[1, .25, 0], "times new roman ce":[1, .25, 0], "times new roman cyr":[1, .25, 0], "times new roman greek":[1, .25, 0], "times new roman tur":[1, .25, 0], tunga:[1.0833, .75, 0], vrinda:[1, .4167, 0], "shonar bangla":[.8333, .5, 0], "microsoft yi baiti":[.8333, .1667, 0], tahoma:[1,
|
|
.1667, 0], "microsoft sans serif":[1.0833, .1667, 0], "angsana new":[.9167, .4167, 0], aparajita:[.75, .4167, 0], "cordia new":[.9167, .5, 0], ebrima:[1.0833, .5, 0], gisha:[.9167, .25, 0], kokila:[.8333, .3333, 0], leelawadee:[.9167, .25, 0], "microsoft uighur":[1.0833, .5, 0], moolboran:[.6667, .6667, 0], symbol:[1, .25, 0], utsaah:[.8333, .4167, 0], vijaya:[1.0833, .25, 0], wingdings:[.9167, .25, 0], andalus:[1.3333, .4167, 0], "arabic typesetting":[.8333, .5, 0], "simplified arabic":[1.3333,
|
|
.5, 0], "simplified arabic fixed":[1, .4167, 0], "sakkal majalla":[.9167, .5, 0], "traditional arabic":[1.3333, .5, 0], aharoni:[.75, .25, 0], david:[.75, .25, 0], frankruehl:[.75, .25, 0], fangsong:[.8333, .1667, 0], simhei:[.8333, .1667, 0], kaiti:[.8333, .1667, 0], "browallia new":[.8333, .4167, 0], "lucida sans unicode":[1.0833, .25, 0], "arial black":[1.0833, .3333, 0], calibri:[.9167, .25, 0], cambria:[.9167, .25, 0], "cambria math":[3.0833, 2.5, 0], candara:[.9167, .25, 0], "comic sans ms":[1.0833,
|
|
.3333, 0], consolas:[.9167, .25, 0], constantia:[.9167, .25, 0], corbel:[.9167, .25, 0], "franklin gothic medium":[1, .3333, 0], gabriola:[1.1667, .6667, 0], georgia:[1, .25, 0], "palatino linotype":[1.0833, .3333, 0], "segoe print":[1.25, .5, 0], "trebuchet ms":[1.0833, .4167, 0], verdana:[1, .1667, 0], webdings:[1.0833, .5, 0], "lucida bright":[.9167, .25, 0], "lucida sans":[.9167, .25, 0], "lucida sans typewriter":[.9167, .25, 0], "gentium basic":[.8333, .25, 0], "dejavu serif condensed":[.9167,
|
|
.25, 0], arimo:[1, .25, 0], "dejavu sans condensed":[.9167, .25, 0], "dejavu sans":[.9167, .25, 0], "dejavu sans light":[.9167, .25, 0], opensymbol:[.8333, .1667, 0], "gentium book basic":[.8333, .25, 0], "dejavu sans mono":[.9167, .25, 0], "dejavu serif":[.9167, .25, 0], "calibri light":[.9167, .25, 0]};
|
|
g.DEVICE_FONT_METRICS_MAC = {"al bayan plain":[1, .5, 0], "al bayan bold":[1, .5833, 0], "american typewriter":[.9167, .25, 0], "american typewriter bold":[.9167, .25, 0], "american typewriter condensed":[.9167, .25, 0], "american typewriter condensed bold":[.9167, .25, 0], "american typewriter condensed light":[.8333, .25, 0], "american typewriter light":[.9167, .25, 0], "andale mono":[.9167, .25, 0], "apple symbols":[.6667, .25, 0], "arial bold italic":[.9167, .25, 0], "arial bold":[.9167,
|
|
.25, 0], "arial italic":[.9167, .25, 0], "arial hebrew":[.75, .3333, 0], "arial hebrew bold":[.75, .3333, 0], arial:[.9167, .25, 0], "arial narrow":[.9167, .25, 0], "arial narrow bold":[.9167, .25, 0], "arial narrow bold italic":[.9167, .25, 0], "arial narrow italic":[.9167, .25, 0], "arial rounded mt bold":[.9167, .25, 0], "arial unicode ms":[1.0833, .25, 0], "avenir black":[1, .3333, 0], "avenir black oblique":[1, .3333, 0], "avenir book":[1, .3333, 0], "avenir book oblique":[1, .3333,
|
|
0], "avenir heavy":[1, .3333, 0], "avenir heavy oblique":[1, .3333, 0], "avenir light":[1, .3333, 0], "avenir light oblique":[1, .3333, 0], "avenir medium":[1, .3333, 0], "avenir medium oblique":[1, .3333, 0], "avenir oblique":[1, .3333, 0], "avenir roman":[1, .3333, 0], "avenir next bold":[1, .3333, 0], "avenir next bold italic":[1, .3333, 0], "avenir next demi bold":[1, .3333, 0], "avenir next demi bold italic":[1, .3333, 0], "avenir next heavy":[1, .3333, 0], "avenir next heavy italic":[1,
|
|
.3333, 0], "avenir next italic":[1, .3333, 0], "avenir next medium":[1, .3333, 0], "avenir next medium italic":[1, .3333, 0], "avenir next regular":[1, .3333, 0], "avenir next ultra light":[1, .3333, 0], "avenir next ultra light italic":[1, .3333, 0], "avenir next condensed bold":[1, .3333, 0], "avenir next condensed bold italic":[1, .3333, 0], "avenir next condensed demi bold":[1, .3333, 0], "avenir next condensed demi bold italic":[1, .3333, 0], "avenir next condensed heavy":[1, .3333,
|
|
0], "avenir next condensed heavy italic":[1, .3333, 0], "avenir next condensed italic":[1, .3333, 0], "avenir next condensed medium":[1, .3333, 0], "avenir next condensed medium italic":[1, .3333, 0], "avenir next condensed regular":[1, .3333, 0], "avenir next condensed ultra light":[1, .3333, 0], "avenir next condensed ultra light italic":[1, .3333, 0], ayuthaya:[1.0833, .3333, 0], baghdad:[.9167, .4167, 0], "bangla mn":[.9167, .6667, 0], "bangla mn bold":[.9167, .6667, 0], "bangla sangam mn":[.9167,
|
|
.4167, 0], "bangla sangam mn bold":[.9167, .4167, 0], baskerville:[.9167, .25, 0], "baskerville bold":[.9167, .25, 0], "baskerville bold italic":[.9167, .25, 0], "baskerville italic":[.9167, .25, 0], "baskerville semibold":[.9167, .25, 0], "baskerville semibold italic":[.9167, .25, 0], "big caslon medium":[.9167, .25, 0], "brush script mt italic":[.9167, .3333, 0], chalkboard:[1, .25, 0], "chalkboard bold":[1, .25, 0], "chalkboard se bold":[1.1667, .25, 0], "chalkboard se light":[1.1667,
|
|
.25, 0], "chalkboard se regular":[1.1667, .25, 0], chalkduster:[1, .25, 0], "charcoal cy":[1, .25, 0], cochin:[.9167, .25, 0], "cochin bold":[.9167, .25, 0], "cochin bold italic":[.9167, .25, 0], "cochin italic":[.9167, .25, 0], "comic sans ms":[1.0833, .25, 0], "comic sans ms bold":[1.0833, .25, 0], copperplate:[.75, .25, 0], "copperplate bold":[.75, .25, 0], "copperplate light":[.75, .25, 0], "corsiva hebrew":[.6667, .3333, 0], "corsiva hebrew bold":[.6667, .3333, 0], courier:[.75,
|
|
.25, 0], "courier bold":[.75, .25, 0], "courier bold oblique":[.75, .25, 0], "courier oblique":[.75, .25, 0], "courier new bold italic":[.8333, .3333, 0], "courier new bold":[.8333, .3333, 0], "courier new italic":[.8333, .3333, 0], "courier new":[.8333, .3333, 0], biaukai:[.8333, .1667, 0], damascus:[.5833, .4167, 0], "damascus bold":[.5833, .4167, 0], "decotype naskh":[1.1667, .6667, 0], "devanagari mt":[.9167, .6667, 0], "devanagari mt bold":[.9167, .6667, 0], "devanagari sangam mn":[.9167,
|
|
.4167, 0], "devanagari sangam mn bold":[.9167, .4167, 0], didot:[.9167, .3333, 0], "didot bold":[1, .3333, 0], "didot italic":[.9167, .25, 0], "euphemia ucas":[1.0833, .25, 0], "euphemia ucas bold":[1.0833, .25, 0], "euphemia ucas italic":[1.0833, .25, 0], "futura condensed extrabold":[1, .25, 0], "futura condensed medium":[1, .25, 0], "futura medium":[1, .25, 0], "futura medium italic":[1, .25, 0], "gb18030 bitmap":[1, .6667, 0], "geeza pro":[.9167, .3333, 0], "geeza pro bold":[.9167,
|
|
.3333, 0], geneva:[1, .25, 0], "geneva cy":[1, .25, 0], georgia:[.9167, .25, 0], "georgia bold":[.9167, .25, 0], "georgia bold italic":[.9167, .25, 0], "georgia italic":[.9167, .25, 0], "gill sans":[.9167, .25, 0], "gill sans bold":[.9167, .25, 0], "gill sans bold italic":[.9167, .25, 0], "gill sans italic":[.9167, .25, 0], "gill sans light":[.9167, .25, 0], "gill sans light italic":[.9167, .25, 0], "gujarati mt":[.9167, .6667, 0], "gujarati mt bold":[.9167, .6667, 0], "gujarati sangam mn":[.8333,
|
|
.4167, 0], "gujarati sangam mn bold":[.8333, .4167, 0], "gurmukhi mn":[.9167, .25, 0], "gurmukhi mn bold":[.9167, .25, 0], "gurmukhi sangam mn":[.9167, .3333, 0], "gurmukhi sangam mn bold":[.9167, .3333, 0], helvetica:[.75, .25, 0], "helvetica bold":[.75, .25, 0], "helvetica bold oblique":[.75, .25, 0], "helvetica light":[.75, .25, 0], "helvetica light oblique":[.75, .25, 0], "helvetica oblique":[.75, .25, 0], "helvetica neue":[.9167, .25, 0], "helvetica neue bold":[1, .25, 0], "helvetica neue bold italic":[1,
|
|
.25, 0], "helvetica neue condensed black":[1, .25, 0], "helvetica neue condensed bold":[1, .25, 0], "helvetica neue italic":[.9167, .25, 0], "helvetica neue light":[1, .25, 0], "helvetica neue light italic":[.9167, .25, 0], "helvetica neue medium":[1, .25, 0], "helvetica neue ultralight":[.9167, .25, 0], "helvetica neue ultralight italic":[.9167, .25, 0], herculanum:[.8333, .1667, 0], "hiragino kaku gothic pro w3":[.9167, .0833, 0], "hiragino kaku gothic pro w6":[.9167, .0833, 0], "hiragino kaku gothic pron w3":[.9167,
|
|
.0833, 0], "hiragino kaku gothic pron w6":[.9167, .0833, 0], "hiragino kaku gothic std w8":[.9167, .0833, 0], "hiragino kaku gothic stdn w8":[.9167, .0833, 0], "hiragino maru gothic pro w4":[.9167, .0833, 0], "hiragino maru gothic pron w4":[.9167, .0833, 0], "hiragino mincho pro w3":[.9167, .0833, 0], "hiragino mincho pro w6":[.9167, .0833, 0], "hiragino mincho pron w3":[.9167, .0833, 0], "hiragino mincho pron w6":[.9167, .0833, 0], "hiragino sans gb w3":[.9167, .0833, 0], "hiragino sans gb w6":[.9167,
|
|
.0833, 0], "hoefler text black":[.75, .25, 0], "hoefler text black italic":[.75, .25, 0], "hoefler text italic":[.75, .25, 0], "hoefler text ornaments":[.8333, .1667, 0], "hoefler text":[.75, .25, 0], impact:[1, .25, 0], inaimathi:[.8333, .4167, 0], "headlinea regular":[.8333, .1667, 0], "pilgi regular":[.8333, .25, 0], "gungseo regular":[.8333, .25, 0], "pcmyungjo regular":[.8333, .25, 0], "kailasa regular":[1.0833, .5833, 0], "kannada mn":[.9167, .25, 0], "kannada mn bold":[.9167,
|
|
.25, 0], "kannada sangam mn":[1, .5833, 0], "kannada sangam mn bold":[1, .5833, 0], "kefa bold":[.9167, .25, 0], "kefa regular":[.9167, .25, 0], "khmer mn":[1, .6667, 0], "khmer mn bold":[1, .6667, 0], "khmer sangam mn":[1.0833, .6667, 0], "kokonor regular":[1.0833, .5833, 0], krungthep:[1, .25, 0], kufistandardgk:[.9167, .5, 0], "lao mn":[.9167, .4167, 0], "lao mn bold":[.9167, .4167, 0], "lao sangam mn":[1, .3333, 0], "apple ligothic medium":[.8333, .1667, 0], "lihei pro":[.8333,
|
|
.1667, 0], "lisong pro":[.8333, .1667, 0], "lucida grande":[1, .25, 0], "lucida grande bold":[1, .25, 0], "malayalam mn":[1, .4167, 0], "malayalam mn bold":[1, .4167, 0], "malayalam sangam mn":[.8333, .4167, 0], "malayalam sangam mn bold":[.8333, .4167, 0], "marion bold":[.6667, .3333, 0], "marion italic":[.6667, .3333, 0], "marion regular":[.6667, .3333, 0], "marker felt thin":[.8333, .25, 0], "marker felt wide":[.9167, .25, 0], "menlo bold":[.9167, .25, 0], "menlo bold italic":[.9167,
|
|
.25, 0], "menlo italic":[.9167, .25, 0], "menlo regular":[.9167, .25, 0], "microsoft sans serif":[.9167, .25, 0], monaco:[1, .25, 0], "gurmukhi mt":[.8333, .4167, 0], mshtakan:[.9167, .25, 0], "mshtakan bold":[.9167, .25, 0], "mshtakan boldoblique":[.9167, .25, 0], "mshtakan oblique":[.9167, .25, 0], "myanmar mn":[1, .4167, 0], "myanmar mn bold":[1, .4167, 0], "myanmar sangam mn":[.9167, .4167, 0], nadeem:[.9167, .4167, 0], "nanum brush script":[.9167, .25, 0], nanumgothic:[.9167, .25,
|
|
0], "nanumgothic bold":[.9167, .25, 0], "nanumgothic extrabold":[.9167, .25, 0], nanummyeongjo:[.9167, .25, 0], "nanummyeongjo bold":[.9167, .25, 0], "nanummyeongjo extrabold":[.9167, .25, 0], "nanum pen script":[.9167, .25, 0], "optima bold":[.9167, .25, 0], "optima bold italic":[.9167, .25, 0], "optima extrablack":[1, .25, 0], "optima italic":[.9167, .25, 0], "optima regular":[.9167, .25, 0], "oriya mn":[.9167, .25, 0], "oriya mn bold":[.9167, .25, 0], "oriya sangam mn":[.8333, .4167,
|
|
0], "oriya sangam mn bold":[.8333, .4167, 0], osaka:[1, .25, 0], "osaka-mono":[.8333, .1667, 0], "palatino bold":[.8333, .25, 0], "palatino bold italic":[.8333, .25, 0], "palatino italic":[.8333, .25, 0], palatino:[.8333, .25, 0], papyrus:[.9167, .5833, 0], "papyrus condensed":[.9167, .5833, 0], "plantagenet cherokee":[.6667, .25, 0], raanana:[.75, .25, 0], "raanana bold":[.75, .25, 0], "hei regular":[.8333, .1667, 0], "kai regular":[.8333, .1667, 0], stfangsong:[.8333, .1667, 0], stheiti:[.8333,
|
|
.1667, 0], "heiti sc light":[.8333, .1667, 0], "heiti sc medium":[.8333, .1667, 0], "heiti tc light":[.8333, .1667, 0], "heiti tc medium":[.8333, .1667, 0], stkaiti:[.8333, .1667, 0], "kaiti sc black":[1.0833, .3333, 0], "kaiti sc bold":[1.0833, .3333, 0], "kaiti sc regular":[1.0833, .3333, 0], stsong:[.8333, .1667, 0], "songti sc black":[1.0833, .3333, 0], "songti sc bold":[1.0833, .3333, 0], "songti sc light":[1.0833, .3333, 0], "songti sc regular":[1.0833, .3333, 0], stxihei:[.8333,
|
|
.1667, 0], sathu:[.9167, .3333, 0], silom:[1, .3333, 0], "sinhala mn":[.9167, .25, 0], "sinhala mn bold":[.9167, .25, 0], "sinhala sangam mn":[1.1667, .3333, 0], "sinhala sangam mn bold":[1.1667, .3333, 0], "skia regular":[.75, .25, 0], symbol:[.6667, .3333, 0], "tahoma negreta":[1, .1667, 0], "tamil mn":[.9167, .25, 0], "tamil mn bold":[.9167, .25, 0], "tamil sangam mn":[.75, .25, 0], "tamil sangam mn bold":[.75, .25, 0], "telugu mn":[.9167, .25, 0], "telugu mn bold":[.9167, .25, 0],
|
|
"telugu sangam mn":[1, .5833, 0], "telugu sangam mn bold":[1, .5833, 0], thonburi:[1.0833, .25, 0], "thonburi bold":[1.0833, .25, 0], "times bold":[.75, .25, 0], "times bold italic":[.75, .25, 0], "times italic":[.75, .25, 0], "times roman":[.75, .25, 0], "times new roman bold italic":[.9167, .25, 0], "times new roman bold":[.9167, .25, 0], "times new roman italic":[.9167, .25, 0], "times new roman":[.9167, .25, 0], "trebuchet ms bold italic":[.9167, .25, 0], "trebuchet ms":[.9167,
|
|
.25, 0], "trebuchet ms bold":[.9167, .25, 0], "trebuchet ms italic":[.9167, .25, 0], verdana:[1, .25, 0], "verdana bold":[1, .25, 0], "verdana bold italic":[1, .25, 0], "verdana italic":[1, .25, 0], webdings:[.8333, .1667, 0], "wingdings 2":[.8333, .25, 0], "wingdings 3":[.9167, .25, 0], "yuppy sc regular":[1.0833, .3333, 0], "yuppy tc regular":[1.0833, .3333, 0], "zapf dingbats":[.8333, .1667, 0], zapfino:[1.9167, 1.5, 0]};
|
|
g.DEVICE_FONT_METRICS_LINUX = {kacstfarsi:[1.0831, .5215, 0], meera:[.682, .4413, 0], freemono:[.8023, .2006, 0], undotum:[1.0029, .2808, 0], loma:[1.1634, .4814, 0], "century schoolbook l":[1.0029, .3209, 0], kacsttitlel:[1.0831, .5215, 0], undinaru:[1.0029, .2407, 0], ungungseo:[1.0029, .2808, 0], garuda:[1.3238, .6017, 0], rekha:[1.1232, .2808, 0], purisa:[1.1232, .5215, 0], "dejavu sans mono":[.9628, .2407, 0], vemana2000:[.8825, .8424, 0], kacstoffice:[1.0831, .5215, 0], umpush:[1.2837,
|
|
.682, 0], opensymbol:[.8023, .2006, 0], sawasdee:[1.1232, .4413, 0], "urw palladio l":[1.0029, .3209, 0], freeserif:[.9227, .3209, 0], kacstdigital:[1.0831, .5215, 0], "ubuntu condensed":[.9628, .2006, 0], unpilgi:[1.0029, .4413, 0], mry_kacstqurn:[1.4442, .7221, 0], "urw gothic l":[1.0029, .2407, 0], dingbats:[.8424, .1605, 0], "urw chancery l":[1.0029, .3209, 0], "phetsarath ot":[1.0831, .5215, 0], "tlwg typist":[.8825, .4012, 0], kacstletter:[1.0831, .5215, 0], utkal:[1.2035, .6418,
|
|
0], "dejavu sans light":[.9628, .2407, 0], norasi:[1.2436, .5215, 0], "dejavu serif condensed":[.9628, .2407, 0], kacstone:[1.2436, .6418, 0], "liberation sans narrow":[.9628, .2407, 0], symbol:[1.043, .3209, 0], nanummyeongjo:[.9227, .2407, 0], untitled1:[.682, .5616, 0], "lohit gujarati":[.9628, .4012, 0], "liberation mono":[.8424, .3209, 0], kacstart:[1.0831, .5215, 0], mallige:[1.0029, .682, 0], "bitstream charter":[1.0029, .2407, 0], nanumgothic:[.9227, .2407, 0], "liberation serif":[.9227,
|
|
.2407, 0], "dejavu sans condensed":[.9628, .2407, 0], ubuntu:[.9628, .2006, 0], "courier 10 pitch":[.8825, .3209, 0], "nimbus sans l":[.9628, .3209, 0], takaopgothic:[.8825, .2006, 0], "wenquanyi micro hei mono":[.9628, .2407, 0], "dejavu sans":[.9628, .2407, 0], kedage:[1.0029, .682, 0], kinnari:[1.3238, .5215, 0], tlwgmono:[.8825, .4012, 0], "standard symbols l":[1.043, .3209, 0], "lohit punjabi":[1.2035, .682, 0], "nimbus mono l":[.8424, .2808, 0], rachana:[.682, .5616, 0], waree:[1.2436,
|
|
.4413, 0], kacstposter:[1.0831, .5215, 0], "khmer os":[1.2837, .7622, 0], freesans:[1.0029, .3209, 0], gargi:[.9628, .2808, 0], "nimbus roman no9 l":[.9628, .3209, 0], "dejavu serif":[.9628, .2407, 0], "wenquanyi micro hei":[.9628, .2407, 0], "ubuntu light":[.9628, .2006, 0], tlwgtypewriter:[.9227, .4012, 0], kacstpen:[1.0831, .5215, 0], "tlwg typo":[.8825, .4012, 0], "mukti narrow":[1.2837, .4413, 0], "ubuntu mono":[.8424, .2006, 0], "lohit bengali":[1.0029, .4413, 0], "liberation sans":[.9227,
|
|
.2407, 0], unbatang:[1.0029, .2808, 0], kacstdecorative:[1.1232, .5215, 0], "khmer os system":[1.2436, .6017, 0], saab:[1.0029, .682, 0], kacsttitle:[1.0831, .5215, 0], "mukti narrow bold":[1.2837, .4413, 0], "lohit hindi":[1.0029, .5215, 0], kacstqurn:[1.0831, .5215, 0], "urw bookman l":[.9628, .2808, 0], kacstnaskh:[1.0831, .5215, 0], kacstscreen:[1.0831, .5215, 0], pothana2000:[.8825, .8424, 0], ungraphic:[1.0029, .2808, 0], "lohit tamil":[.8825, .361, 0], kacstbook:[1.0831, .5215,
|
|
0]};
|
|
g.DEVICE_FONT_METRICS_MAC.__proto__ = g.DEVICE_FONT_METRICS_WIN;
|
|
g.DEVICE_FONT_METRICS_LINUX.__proto__ = g.DEVICE_FONT_METRICS_MAC;
|
|
};
|
|
g.classSymbols = null;
|
|
g.instanceSymbols = null;
|
|
g.initializer = function(b) {
|
|
this._id = f.display.DisplayObject.getNextSyncID();
|
|
this._fontType = this._fontStyle = this._fontName = null;
|
|
this.leading = this.descent = this.ascent = 0;
|
|
this.advances = null;
|
|
if (b) {
|
|
this._symbol = b;
|
|
this._fontName = b.name;
|
|
this._fontStyle = b.bold ? b.italic ? d.BOLD_ITALIC : d.BOLD : b.italic ? d.ITALIC : d.REGULAR;
|
|
var c = b.metrics;
|
|
c && (this.ascent = c.ascent, this.descent = c.descent, this.leading = c.leading, this.advances = c.advances);
|
|
this._fontType = b.data ? a.EMBEDDED : a.DEVICE;
|
|
g._fontsBySymbolId[b.id] = this;
|
|
g._fontsByName[b.name.toLowerCase()] = this;
|
|
g._fontsByName["swffont" + b.id] = this;
|
|
}
|
|
};
|
|
return g;
|
|
}(g.ASNative);
|
|
k.Font = c;
|
|
})(f.text || (f.text = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.fromNumber = function(a) {
|
|
switch(a) {
|
|
case 0:
|
|
return d.NONE;
|
|
case 1:
|
|
return d.PIXEL;
|
|
case 2:
|
|
return d.SUBPIXEL;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
d.toNumber = function(a) {
|
|
switch(a) {
|
|
case d.NONE:
|
|
return 0;
|
|
case d.PIXEL:
|
|
return 1;
|
|
case d.SUBPIXEL:
|
|
return 2;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.NONE = "none";
|
|
d.PIXEL = "pixel";
|
|
d.SUBPIXEL = "subpixel";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.GridFitType = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(g) {
|
|
var k = function(g) {
|
|
function d() {
|
|
b.display.DisplayObject.instanceConstructorNoInitialize.call(this);
|
|
}
|
|
__extends(d, g);
|
|
d.prototype._canHaveTextContent = function() {
|
|
return!0;
|
|
};
|
|
d.prototype._getTextContent = function() {
|
|
return this._textContent;
|
|
};
|
|
Object.defineProperty(d.prototype, "text", {get:function() {
|
|
return this._textContent.plainText;
|
|
}, enumerable:!0, configurable:!0});
|
|
d.classInitializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.initializer = function(a) {
|
|
this._textContent = null;
|
|
a && this._setStaticContentFromSymbol(a);
|
|
};
|
|
return d;
|
|
}(b.display.DisplayObject);
|
|
g.StaticText = k;
|
|
})(b.text || (b.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.text.StyleSheet");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.StyleSheet = m;
|
|
})(f.text || (f.text = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.LCD = "lcd";
|
|
d.CRT = "crt";
|
|
d.DEFAULT = "default";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.TextDisplayMode = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = b.Debug.notImplemented, m = b.Debug.assert, d = b.Debug.somewhatImplemented, a = b.AVM2.Runtime.throwError, c = b.AVM2.Runtime.asCoerceString, n = b.NumberUtilities.clamp, p = function(e) {
|
|
function p() {
|
|
e.call(this);
|
|
s("Dummy Constructor: public flash.text.TextField");
|
|
}
|
|
__extends(p, e);
|
|
p.prototype._setFillAndLineBoundsFromSymbol = function(a) {
|
|
e.prototype._setFillAndLineBoundsFromSymbol.call(this, a);
|
|
this._textContent.bounds = this._lineBounds;
|
|
this._invalidateContent();
|
|
};
|
|
p.prototype._setFillAndLineBoundsFromWidthAndHeight = function(a, b) {
|
|
e.prototype._setFillAndLineBoundsFromWidthAndHeight.call(this, a, b);
|
|
this._textContent.bounds = this._lineBounds;
|
|
this._invalidateContent();
|
|
};
|
|
p.prototype._canHaveTextContent = function() {
|
|
return!0;
|
|
};
|
|
p.prototype._getTextContent = function() {
|
|
return this._textContent;
|
|
};
|
|
p.prototype._getContentBounds = function(a) {
|
|
"undefined" === typeof a && (a = !0);
|
|
this._ensureLineMetrics();
|
|
return e.prototype._getContentBounds.call(this, a);
|
|
};
|
|
p.prototype._containsPointDirectly = function(a, b) {
|
|
m(this._getContentBounds().contains(a, b));
|
|
return!0;
|
|
};
|
|
p.prototype._invalidateContent = function() {
|
|
this._textContent.flags & b.TextContentFlags.Dirty && this._setFlags(8388608);
|
|
};
|
|
p.isFontCompatible = function(a, b) {
|
|
c(a);
|
|
c(b);
|
|
d("flash.text.TextField.isFontCompatible");
|
|
return!0;
|
|
};
|
|
Object.defineProperty(p.prototype, "alwaysShowSelection", {get:function() {
|
|
return this._alwaysShowSelection;
|
|
}, set:function(a) {
|
|
d("public flash.text.TextField::set alwaysShowSelection");
|
|
this._alwaysShowSelection = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "antiAliasType", {get:function() {
|
|
return this._antiAliasType;
|
|
}, set:function(b) {
|
|
d("public flash.text.TextField::set antiAliasType");
|
|
b = c(b);
|
|
0 > g.AntiAliasType.toNumber(b) && a("ArgumentError", k.Errors.InvalidParamError, "antiAliasType");
|
|
this._antiAliasType = b;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "autoSize", {get:function() {
|
|
return this._autoSize;
|
|
}, set:function(b) {
|
|
b = c(b);
|
|
b !== this._autoSize && (0 > g.TextFieldAutoSize.toNumber(b) && a("ArgumentError", k.Errors.InvalidParamError, "autoSize"), this._autoSize = b, this._textContent.autoSize = g.TextFieldAutoSize.toNumber(b), this._invalidateContent());
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "background", {get:function() {
|
|
return this._background;
|
|
}, set:function(a) {
|
|
a = !!a;
|
|
a !== this._background && (this._background = a, this._textContent.backgroundColor = a ? this._backgroundColor : 0, this._setDirtyFlags(8388608));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "backgroundColor", {get:function() {
|
|
return this._backgroundColor >> 8;
|
|
}, set:function(a) {
|
|
a = (a << 8 | 255) >>> 0;
|
|
a !== this._backgroundColor && (this._backgroundColor = a, this._background && (this._textContent.backgroundColor = a, this._setDirtyFlags(8388608)));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "border", {get:function() {
|
|
return this._border;
|
|
}, set:function(a) {
|
|
a = !!a;
|
|
a !== this._border && (this._border = a, this._textContent.borderColor = a ? this._borderColor : 0, this._setDirtyFlags(8388608));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "borderColor", {get:function() {
|
|
return this._borderColor >> 8;
|
|
}, set:function(a) {
|
|
a = (a << 8 | 255) >>> 0;
|
|
a !== this._borderColor && (this._borderColor = a, this._border && (this._textContent.borderColor = a, this._setDirtyFlags(8388608)));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "bottomScrollV", {get:function() {
|
|
s("public flash.text.TextField::get bottomScrollV");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "caretIndex", {get:function() {
|
|
s("public flash.text.TextField::get caretIndex");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "condenseWhite", {get:function() {
|
|
d("public flash.text.TextField::get condenseWhite");
|
|
return this._condenseWhite;
|
|
}, set:function(a) {
|
|
this._condenseWhite = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "defaultTextFormat", {get:function() {
|
|
return this._textContent.defaultTextFormat.clone();
|
|
}, set:function(a) {
|
|
this._textContent.defaultTextFormat.merge(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "embedFonts", {get:function() {
|
|
return this._embedFonts;
|
|
}, set:function(a) {
|
|
this._embedFonts = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "gridFitType", {get:function() {
|
|
d("public flash.text.TextField::get gridFitType");
|
|
return this._gridFitType;
|
|
}, set:function(a) {
|
|
a = c(a);
|
|
m(0 <= f.text.GridFitType.toNumber(a));
|
|
d("public flash.text.TextField::set gridFitType");
|
|
this._gridFitType = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "htmlText", {get:function() {
|
|
return this._htmlText;
|
|
}, set:function(a) {
|
|
d("public flash.text.TextField::set htmlText");
|
|
a = c(a);
|
|
this._symbol && (this._textContent.defaultTextFormat.bold = !1, this._textContent.defaultTextFormat.italic = !1);
|
|
this._textContent.parseHtml(a, this._multiline);
|
|
this._htmlText = a;
|
|
this._invalidateContent();
|
|
this._ensureLineMetrics();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "length", {get:function() {
|
|
return this._length;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "textInteractionMode", {get:function() {
|
|
s("public flash.text.TextField::get textInteractionMode");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "maxChars", {get:function() {
|
|
return this._maxChars;
|
|
}, set:function(a) {
|
|
this._maxChars = a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "maxScrollH", {get:function() {
|
|
return this._maxScrollH;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "maxScrollV", {get:function() {
|
|
return this._maxScrollV;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "mouseWheelEnabled", {get:function() {
|
|
return this._mouseWheelEnabled;
|
|
}, set:function(a) {
|
|
d("public flash.text.TextField::set mouseWheelEnabled");
|
|
this._mouseWheelEnabled = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "multiline", {get:function() {
|
|
return this._multiline;
|
|
}, set:function(a) {
|
|
this._multiline = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "numLines", {get:function() {
|
|
return this._numLines;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "displayAsPassword", {get:function() {
|
|
return this._displayAsPassword;
|
|
}, set:function(a) {
|
|
d("public flash.text.TextField::set displayAsPassword");
|
|
this._displayAsPassword = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "restrict", {get:function() {
|
|
return this._restrict;
|
|
}, set:function(a) {
|
|
d("public flash.text.TextField::set restrict");
|
|
this._restrict = c(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "scrollH", {get:function() {
|
|
d("public flash.text.TextField::get scrollH");
|
|
return this._scrollH;
|
|
}, set:function(a) {
|
|
a |= 0;
|
|
d("public flash.text.TextField::set scrollH");
|
|
this._scrollH = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "scrollV", {get:function() {
|
|
d("public flash.text.TextField::get scrollV");
|
|
return this._scrollV;
|
|
}, set:function(a) {
|
|
a |= 0;
|
|
d("public flash.text.TextField::set scrollV");
|
|
this._scrollV = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "selectable", {get:function() {
|
|
return this._selectable;
|
|
}, set:function(a) {
|
|
d("public flash.text.TextField::set selectable");
|
|
this._selectable = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "selectionBeginIndex", {get:function() {
|
|
return this._selectionBeginIndex;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "selectionEndIndex", {get:function() {
|
|
return this._selectionEndIndex;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "sharpness", {get:function() {
|
|
return this._sharpness;
|
|
}, set:function(a) {
|
|
this._sharpness = n(+a, -400, 400);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "styleSheet", {get:function() {
|
|
s("public flash.text.TextField::get styleSheet");
|
|
}, set:function(a) {
|
|
s("public flash.text.TextField::set styleSheet");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "text", {get:function() {
|
|
return this._textContent.plainText;
|
|
}, set:function(a) {
|
|
d("public flash.text.TextField::set text");
|
|
this._textContent.plainText = c(a);
|
|
this._invalidateContent();
|
|
this._ensureLineMetrics();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "textColor", {get:function() {
|
|
return 0 > this._textColor ? +this._textContent.defaultTextFormat.color : this._textColor;
|
|
}, set:function(a) {
|
|
this._textColor = a >>> 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "textHeight", {get:function() {
|
|
this._ensureLineMetrics();
|
|
return this._textHeight / 20 | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "textWidth", {get:function() {
|
|
this._ensureLineMetrics();
|
|
return this._textWidth / 20 | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "thickness", {get:function() {
|
|
return this._thickness;
|
|
}, set:function(a) {
|
|
this._thickness = n(+a, -200, 200);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "type", {get:function() {
|
|
return this._type;
|
|
}, set:function(a) {
|
|
this._type = c(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "wordWrap", {get:function() {
|
|
return this._textContent.wordWrap;
|
|
}, set:function(a) {
|
|
a = !!a;
|
|
a !== this._textContent.wordWrap && (this._textContent.wordWrap = !!a, this._invalidateContent());
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(p.prototype, "useRichTextClipboard", {get:function() {
|
|
s("public flash.text.TextField::get useRichTextClipboard");
|
|
}, set:function(a) {
|
|
s("public flash.text.TextField::set useRichTextClipboard");
|
|
}, enumerable:!0, configurable:!0});
|
|
p.prototype._ensureLineMetrics = function() {
|
|
if (this._hasFlags(8388608)) {
|
|
var a = b.AVM2.Runtime.AVM2.instance.globals["Shumway.Player.Utils"].syncDisplayObject(this, !1), c = a.readInt(), d = a.readInt(), e = a.readInt();
|
|
this._autoSize !== g.TextFieldAutoSize.NONE && (this._fillBounds.xMin = this._lineBounds.xMin = e, this._fillBounds.xMax = this._lineBounds.xMax = e + c + 80, this._fillBounds.yMax = this._lineBounds.yMax = this._lineBounds.yMin + d + 80);
|
|
this._textWidth = c;
|
|
this._textHeight = d;
|
|
this._numLines = a.readInt();
|
|
this._lineMetricsData = a;
|
|
}
|
|
};
|
|
p.prototype.getCharBoundaries = function(a) {
|
|
s("public flash.text.TextField::getCharBoundaries");
|
|
};
|
|
p.prototype.getCharIndexAtPoint = function(a, b) {
|
|
s("public flash.text.TextField::getCharIndexAtPoint");
|
|
};
|
|
p.prototype.getFirstCharInParagraph = function(a) {
|
|
s("public flash.text.TextField::getFirstCharInParagraph");
|
|
};
|
|
p.prototype.getLineIndexAtPoint = function(a, b) {
|
|
s("public flash.text.TextField::getLineIndexAtPoint");
|
|
};
|
|
p.prototype.getLineIndexOfChar = function(a) {
|
|
s("public flash.text.TextField::getLineIndexOfChar");
|
|
};
|
|
p.prototype.getLineLength = function(a) {
|
|
s("public flash.text.TextField::getLineLength");
|
|
};
|
|
p.prototype.getLineMetrics = function() {
|
|
var b;
|
|
b = 0;
|
|
(0 > b || b > this._numLines - 1) && a("RangeError", k.Errors.ParamRangeError);
|
|
this._ensureLineMetrics();
|
|
var c = this._lineMetricsData;
|
|
c.position = 12 + 20 * b;
|
|
b = c.readInt();
|
|
var d = c.readInt(), e = c.readInt(), h = c.readInt(), c = c.readInt();
|
|
return new g.TextLineMetrics(b, d, e + h + c, e, h, c);
|
|
};
|
|
p.prototype.getLineOffset = function(a) {
|
|
s("public flash.text.TextField::getLineOffset");
|
|
};
|
|
p.prototype.getLineText = function(a) {
|
|
s("public flash.text.TextField::getLineText");
|
|
};
|
|
p.prototype.getParagraphLength = function(a) {
|
|
s("public flash.text.TextField::getParagraphLength");
|
|
};
|
|
p.prototype.getTextFormat = function(a, b) {
|
|
s("public flash.text.TextField::getTextFormat");
|
|
};
|
|
p.prototype.getTextRuns = function(a, b) {
|
|
"undefined" === typeof a && (a = 0);
|
|
"undefined" === typeof b && (b = 2147483647);
|
|
for (var c = this._textContent.textRuns, d = [], h = 0;h < c.length;h++) {
|
|
var e = c[h];
|
|
e.beginIndex >= a && e.endIndex <= b && d.push(e.clone());
|
|
}
|
|
return d;
|
|
};
|
|
p.prototype.getRawText = function() {
|
|
s("public flash.text.TextField::getRawText");
|
|
};
|
|
p.prototype.replaceSelectedText = function(a) {
|
|
s("public flash.text.TextField::replaceSelectedText");
|
|
};
|
|
p.prototype.replaceText = function(a, b, c) {
|
|
a |= 0;
|
|
b |= 0;
|
|
c = "" + c;
|
|
d("public flash.text.TextField::replaceText");
|
|
var e = this._textContent.plainText;
|
|
this._textContent.plainText = e.substring(0, a) + c + e.substring(b);
|
|
this._invalidateContent();
|
|
this._ensureLineMetrics();
|
|
};
|
|
p.prototype.setSelection = function(a, b) {
|
|
d("public flash.text.TextField::setSelection");
|
|
this._selectionBeginIndex = a | 0;
|
|
this._selectionEndIndex = b | 0;
|
|
};
|
|
p.prototype.setTextFormat = function(a, b, c) {
|
|
d("public flash.text.TextField::setTextFormat");
|
|
};
|
|
p.prototype.getImageReference = function(a) {
|
|
s("public flash.text.TextField::getImageReference");
|
|
};
|
|
p.classSymbols = null;
|
|
p.instanceSymbols = null;
|
|
p.classInitializer = null;
|
|
p.initializer = function(a) {
|
|
this._alwaysShowSelection = !1;
|
|
this._antiAliasType = g.AntiAliasType.NORMAL;
|
|
this._autoSize = g.TextFieldAutoSize.NONE;
|
|
this._background = !1;
|
|
this._backgroundColor = 4294967295;
|
|
this._border = !1;
|
|
this._borderColor = 255;
|
|
this._bottomScrollV = 1;
|
|
this._caretIndex = 0;
|
|
this._embedFonts = this._condenseWhite = !1;
|
|
this._gridFitType = g.GridFitType.PIXEL;
|
|
this._htmlText = "";
|
|
this._length = 0;
|
|
this._textInteractionMode = g.TextInteractionMode.NORMAL;
|
|
this._maxScrollH = this._maxChars = 0;
|
|
this._maxScrollV = 1;
|
|
this._multiline = this._mouseWheelEnabled = !1;
|
|
this._numLines = 1;
|
|
this._displayAsPassword = !1;
|
|
this._restrict = null;
|
|
this._scrollH = 0;
|
|
this._scrollV = 1;
|
|
this._selectable = !0;
|
|
this._selectedText = "";
|
|
this._sharpness = this._selectionEndIndex = this._selectionBeginIndex = 0;
|
|
this._styleSheet = null;
|
|
this._textColor = -1;
|
|
this._thickness = this._textWidth = this._textHeight = 0;
|
|
this._type = g.TextFieldType.DYNAMIC;
|
|
this._useRichTextClipboard = !1;
|
|
var c = new f.text.TextFormat("Times Roman", 12, 0, !1, !1, !1, "", "", g.TextFormatAlign.LEFT);
|
|
this._textContent = new b.TextContent(c);
|
|
this._lineMetricsData = null;
|
|
a ? (this._setFillAndLineBoundsFromSymbol(a), c.color = a.color, c.size = a.size / 20 | 0, c.font = a.font, c.align = a.align, c.leftMargin = a.leftMargin / 20 | 0, c.rightMargin = a.rightMargin / 20 | 0, c.indent = a.indent / 20 | 0, c.leading = a.leading / 20 | 0, this._multiline = a.multiline, this._embedFonts = a.embedFonts, this._selectable = a.selectable, this._displayAsPassword = a.displayAsPassword, this._type = a.type, this._maxChars = a.maxChars, a.border && (this.border =
|
|
this.background = !0), a.html ? this.htmlText = a.initialText : this.text = a.initialText, this.wordWrap = a.wordWrap, this.autoSize = a.autoSize) : this._setFillAndLineBoundsFromWidthAndHeight(2E3, 2E3);
|
|
};
|
|
return p;
|
|
}(f.display.InteractiveObject);
|
|
g.TextField = p;
|
|
})(f.text || (f.text = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.fromNumber = function(a) {
|
|
switch(a) {
|
|
case 0:
|
|
return d.NONE;
|
|
case 1:
|
|
return d.CENTER;
|
|
case 2:
|
|
return d.LEFT;
|
|
case 3:
|
|
return d.RIGHT;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
d.toNumber = function(a) {
|
|
switch(a) {
|
|
case d.NONE:
|
|
return 0;
|
|
case d.CENTER:
|
|
return 1;
|
|
case d.LEFT:
|
|
return 2;
|
|
case d.RIGHT:
|
|
return 3;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.NONE = "none";
|
|
d.LEFT = "left";
|
|
d.CENTER = "center";
|
|
d.RIGHT = "right";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.TextFieldAutoSize = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.INPUT = "input";
|
|
d.DYNAMIC = "dynamic";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.TextFieldType = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(t) {
|
|
var s = b.AVM2.Runtime.asCoerceString, m = b.NumberUtilities.roundHalfEven, d = b.AVM2.Runtime.throwError, a = function(a) {
|
|
function b(a, c, d, f, g, k, m, h, n, s, t, I, C) {
|
|
"undefined" === typeof a && (a = null);
|
|
"undefined" === typeof c && (c = null);
|
|
"undefined" === typeof d && (d = null);
|
|
"undefined" === typeof f && (f = null);
|
|
"undefined" === typeof g && (g = null);
|
|
"undefined" === typeof k && (k = null);
|
|
"undefined" === typeof m && (m = null);
|
|
"undefined" === typeof h && (h = null);
|
|
"undefined" === typeof n && (n = null);
|
|
"undefined" === typeof s && (s = null);
|
|
"undefined" === typeof t && (t = null);
|
|
"undefined" === typeof I && (I = null);
|
|
"undefined" === typeof C && (C = null);
|
|
this.font = a;
|
|
this.size = c;
|
|
this.color = d;
|
|
this.bold = f;
|
|
this.italic = g;
|
|
this.underline = k;
|
|
this.url = m;
|
|
this.target = h;
|
|
this.align = n;
|
|
this.leftMargin = s;
|
|
this.rightMargin = t;
|
|
this.indent = I;
|
|
this.leading = C;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.as2GetTextExtent = function(a, c) {
|
|
b.measureTextField || (b.measureTextField = new f.text.TextField, b.measureTextField._multiline = !0);
|
|
var d = b.measureTextField;
|
|
!isNaN(c) && 0 < c ? (d.width = c + 4, d._wordWrap = !0) : d._wordWrap = !1;
|
|
d.defaultTextFormat = this;
|
|
d.text = a;
|
|
var g = {}, k = d.textWidth, m = d.textHeight;
|
|
g.asSetPublicProperty("width", k);
|
|
g.asSetPublicProperty("height", m);
|
|
g.asSetPublicProperty("textFieldWidth", k + 4);
|
|
g.asSetPublicProperty("textFieldHeight", m + 4);
|
|
d = d.getLineMetrics();
|
|
g.asSetPublicProperty("ascent", d.ascent);
|
|
g.asSetPublicProperty("descent", d.descent);
|
|
return g;
|
|
};
|
|
Object.defineProperty(b.prototype, "align", {get:function() {
|
|
return this._align;
|
|
}, set:function(a) {
|
|
this._align = a = s(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "blockIndent", {get:function() {
|
|
return this._blockIndent;
|
|
}, set:function(a) {
|
|
this._blockIndent = b.coerceNumber(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "bold", {get:function() {
|
|
return this._bold;
|
|
}, set:function(a) {
|
|
this._bold = b.coerceBoolean(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "bullet", {get:function() {
|
|
return this._bullet;
|
|
}, set:function(a) {
|
|
this._bullet = b.coerceBoolean(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "color", {get:function() {
|
|
return this._color;
|
|
}, set:function(a) {
|
|
this._color = +a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "display", {get:function() {
|
|
return this._display;
|
|
}, set:function(a) {
|
|
this._display = s(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "font", {get:function() {
|
|
return this._font;
|
|
}, set:function(a) {
|
|
this._font = s(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "indent", {get:function() {
|
|
return this._indent;
|
|
}, set:function(a) {
|
|
this._indent = b.coerceNumber(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "italic", {get:function() {
|
|
return this._italic;
|
|
}, set:function(a) {
|
|
this._italic = b.coerceBoolean(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "kerning", {get:function() {
|
|
return this._kerning;
|
|
}, set:function(a) {
|
|
this._kerning = b.coerceBoolean(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "leading", {get:function() {
|
|
return this._leading;
|
|
}, set:function(a) {
|
|
this._leading = b.coerceNumber(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "leftMargin", {get:function() {
|
|
return this._leftMargin;
|
|
}, set:function(a) {
|
|
this._leftMargin = b.coerceNumber(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "letterSpacing", {get:function() {
|
|
return this._letterSpacing;
|
|
}, set:function(a) {
|
|
this._letterSpacing = b.coerceBoolean(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "rightMargin", {get:function() {
|
|
return this._rightMargin;
|
|
}, set:function(a) {
|
|
this._rightMargin = b.coerceNumber(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "size", {get:function() {
|
|
return this._size;
|
|
}, set:function(a) {
|
|
this._size = b.coerceNumber(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "tabStops", {get:function() {
|
|
return this._tabStops;
|
|
}, set:function(a) {
|
|
a instanceof Array || d("ArgumentError", k.Errors.CheckTypeFailedError, a, "Array");
|
|
this._tabStops = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "target", {get:function() {
|
|
return this._target;
|
|
}, set:function(a) {
|
|
this._target = s(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "underline", {get:function() {
|
|
return this._underline;
|
|
}, set:function(a) {
|
|
this._underline = b.coerceBoolean(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "url", {get:function() {
|
|
return this._url;
|
|
}, set:function(a) {
|
|
this._url = s(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
b.coerceNumber = function(a) {
|
|
return void 0 == a ? null : isNaN(a) || 268435455 < a ? -2147483648 : m(a);
|
|
};
|
|
b.coerceBoolean = function(a) {
|
|
return void 0 == a ? null : !!a;
|
|
};
|
|
b.prototype.clone = function() {
|
|
return new f.text.TextFormat(this.font, this.size, this.color, this.bold, this.italic, this.underline, this.url, this.target, this.align, this.leftMargin, this.rightMargin, this.indent, this.leading);
|
|
};
|
|
b.prototype.equals = function(a) {
|
|
return this._align === a._align && this._blockIndent === a._blockIndent && this._bold === a._bold && this._bullet === a._bullet && this._color === a._color && this._display === a._display && this._font === a._font && this._indent === a._indent && this._italic === a._italic && this._kerning === a._kerning && this._leading === a._leading && this._leftMargin === a._leftMargin && this._letterSpacing === a._letterSpacing && this._rightMargin === a._rightMargin && this._size === a._size &&
|
|
this._tabStops === a._tabStops && this._target === a._target && this._underline === a._underline && this._url === a._url;
|
|
};
|
|
b.prototype.merge = function(a) {
|
|
null !== a._align && (this._align = a._align);
|
|
null !== a._blockIndent && (this._blockIndent = a._blockIndent);
|
|
null !== a._bold && (this._bold = a._bold);
|
|
null !== a._bullet && (this._bullet = a._bullet);
|
|
null !== a._color && (this._color = a._color);
|
|
null !== a._display && (this._display = a._display);
|
|
null !== a._font && (this._font = a._font);
|
|
null !== a._indent && (this._indent = a._indent);
|
|
null !== a._italic && (this._italic = a._italic);
|
|
null !== a._kerning && (this._kerning = a._kerning);
|
|
null !== a._leading && (this._leading = a._leading);
|
|
null !== a._leftMargin && (this._leftMargin = a._leftMargin);
|
|
null !== a._letterSpacing && (this._letterSpacing = a._letterSpacing);
|
|
null !== a._rightMargin && (this._rightMargin = a._rightMargin);
|
|
null !== a._size && (this._size = a._size);
|
|
null !== a._tabStops && (this._tabStops = a._tabStops);
|
|
null !== a._target && (this._target = a._target);
|
|
null !== a._underline && (this._underline = a._underline);
|
|
null !== a._url && (this._url = a._url);
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
t.TextFormat = a;
|
|
})(f.text || (f.text = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.fromNumber = function(a) {
|
|
switch(a) {
|
|
case 0:
|
|
return d.LEFT;
|
|
case 1:
|
|
return d.RIGHT;
|
|
case 2:
|
|
return d.CENTER;
|
|
case 3:
|
|
return d.JUSTIFY;
|
|
case 4:
|
|
return d.START;
|
|
case 5:
|
|
return d.END;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
d.toNumber = function(a) {
|
|
switch(a) {
|
|
case d.LEFT:
|
|
return 0;
|
|
case d.RIGHT:
|
|
return 1;
|
|
case d.CENTER:
|
|
return 2;
|
|
case d.JUSTIFY:
|
|
return 3;
|
|
case d.START:
|
|
return 4;
|
|
case d.END:
|
|
return 5;
|
|
default:
|
|
return-1;
|
|
}
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.LEFT = "left";
|
|
d.CENTER = "center";
|
|
d.RIGHT = "right";
|
|
d.JUSTIFY = "justify";
|
|
d.START = "start";
|
|
d.END = "end";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.TextFormatAlign = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.INLINE = "inline";
|
|
d.BLOCK = "block";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.TextFormatDisplay = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function d() {
|
|
b.call(this);
|
|
}
|
|
__extends(d, b);
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
d.NORMAL = "normal";
|
|
d.SELECTION = "selection";
|
|
return d;
|
|
}(b.ASNative);
|
|
f.TextInteractionMode = k;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, b, d, e, f, g) {
|
|
k("Dummy Constructor: public flash.text.TextLineMetrics");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.TextLineMetrics = m;
|
|
})(f.text || (f.text = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
(function(k) {
|
|
var s = function(b) {
|
|
function d(a, b, d) {
|
|
this._beginIndex = a | 0;
|
|
this._endIndex = b | 0;
|
|
this._textFormat = d;
|
|
}
|
|
__extends(d, b);
|
|
Object.defineProperty(d.prototype, "beginIndex", {get:function() {
|
|
return this._beginIndex;
|
|
}, set:function(a) {
|
|
this._beginIndex = a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "endIndex", {get:function() {
|
|
return this._endIndex;
|
|
}, set:function(a) {
|
|
this._endIndex = a | 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(d.prototype, "textFormat", {get:function() {
|
|
return this._textFormat;
|
|
}, set:function(a) {
|
|
this._textFormat = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.clone = function() {
|
|
return new f.text.TextRun(this.beginIndex, this.endIndex, this.textFormat);
|
|
};
|
|
d.classInitializer = null;
|
|
d.initializer = null;
|
|
d.classSymbols = null;
|
|
d.instanceSymbols = null;
|
|
return d;
|
|
}(b.ASNative);
|
|
k.TextRun = s;
|
|
})(f.text || (f.text = {}));
|
|
})(b.flash || (b.flash = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b() {
|
|
k("Dummy Constructor: public flash.text.TextSnapshot");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "charCount", {get:function() {
|
|
k("public flash.text.TextSnapshot::get charCount");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.findText = function(a, b, c) {
|
|
m(b);
|
|
k("public flash.text.TextSnapshot::findText");
|
|
};
|
|
b.prototype.getSelected = function(a, b) {
|
|
k("public flash.text.TextSnapshot::getSelected");
|
|
};
|
|
b.prototype.getSelectedText = function(a) {
|
|
k("public flash.text.TextSnapshot::getSelectedText");
|
|
};
|
|
b.prototype.getText = function(a, b, c) {
|
|
k("public flash.text.TextSnapshot::getText");
|
|
};
|
|
b.prototype.getTextRunInfo = function(a, b) {
|
|
k("public flash.text.TextSnapshot::getTextRunInfo");
|
|
};
|
|
b.prototype.hitTestTextNearPos = function(a, b, c) {
|
|
k("public flash.text.TextSnapshot::hitTestTextNearPos");
|
|
};
|
|
b.prototype.setSelectColor = function(a) {
|
|
k("public flash.text.TextSnapshot::setSelectColor");
|
|
};
|
|
b.prototype.setSelected = function(a, b, c) {
|
|
k("public flash.text.TextSnapshot::setSelected");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.TextSnapshot = d;
|
|
})(f.text || (f.text = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.trace.Trace");
|
|
}
|
|
__extends(a, b);
|
|
a.setLevel = function(a, b) {
|
|
k("public flash.trace.Trace::static setLevel");
|
|
};
|
|
a.getLevel = function(a) {
|
|
k("public flash.trace.Trace::static getLevel");
|
|
};
|
|
a.setListener = function(a) {
|
|
k("public flash.trace.Trace::static setListener");
|
|
};
|
|
a.getListener = function() {
|
|
k("public flash.trace.Trace::static getListener");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.OFF = void 0;
|
|
a.METHODS = 1;
|
|
a.METHODS_WITH_ARGS = 2;
|
|
a.METHODS_AND_LINES = 3;
|
|
a.METHODS_AND_LINES_WITH_ARGS = 4;
|
|
a.FILE = 1;
|
|
a.LISTENER = 2;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.Trace = m;
|
|
})(f.trace || (f.trace = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.Debug.somewhatImplemented, d = function(a) {
|
|
function b() {
|
|
k("Dummy Constructor: public flash.ui.ContextMenu");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "builtInItems", {get:function() {
|
|
m("public flash.ui.ContextMenu::get builtInItems");
|
|
return this._builtInItems;
|
|
}, set:function(a) {
|
|
m("public flash.ui.ContextMenu::set builtInItems");
|
|
this._builtInItems = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "customItems", {get:function() {
|
|
m("public flash.ui.ContextMenu::get customItems");
|
|
return this._customItems;
|
|
}, set:function(a) {
|
|
m("public flash.ui.ContextMenu::set customItems");
|
|
this._customItems = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "link", {get:function() {
|
|
k("public flash.ui.ContextMenu::get link");
|
|
}, set:function(a) {
|
|
k("public flash.ui.ContextMenu::set link");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "clipboardMenu", {get:function() {
|
|
k("public flash.ui.ContextMenu::get clipboardMenu");
|
|
}, set:function(a) {
|
|
k("public flash.ui.ContextMenu::set clipboardMenu");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "clipboardItems", {get:function() {
|
|
k("public flash.ui.ContextMenu::get clipboardItems");
|
|
}, set:function(a) {
|
|
k("public flash.ui.ContextMenu::set clipboardItems");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.cloneLinkAndClipboardProperties = function(a) {
|
|
k("public flash.ui.ContextMenu::cloneLinkAndClipboardProperties");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(f.display.NativeMenu);
|
|
g.ContextMenu = d;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.ui.ContextMenuBuiltInItems");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.ContextMenuBuiltInItems = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.ui.ContextMenuClipboardItems");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.ContextMenuClipboardItems = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.AVM2.Runtime.asCoerceString, m = function(b) {
|
|
function a(a, b, d, e) {
|
|
"undefined" === typeof b && (b = !1);
|
|
"undefined" === typeof d && (d = !0);
|
|
"undefined" === typeof e && (e = !0);
|
|
this._caption = (a = k(a)) ? a : "";
|
|
this._separatorBefore = !!b;
|
|
this._enabled = !!d;
|
|
this._visible = !!e;
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "caption", {get:function() {
|
|
return this._caption;
|
|
}, set:function(a) {
|
|
this._caption = a = k(a);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "separatorBefore", {get:function() {
|
|
return this._separatorBefore;
|
|
}, set:function(a) {
|
|
this._separatorBefore = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "visible", {get:function() {
|
|
return this._visible;
|
|
}, set:function(a) {
|
|
this._visible = !!a;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.display.NativeMenuItem);
|
|
g.ContextMenuItem = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var s = b.Debug.somewhatImplemented, m = b.Debug.notImplemented, d = b.AVM2.Runtime.throwError, a = function(a) {
|
|
function b() {
|
|
m("Dummy Constructor: public flash.ui.GameInput");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "numDevices", {get:function() {
|
|
s("public flash.ui.GameInput::get numDevices");
|
|
return 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "isSupported", {get:function() {
|
|
s("public flash.ui.GameInput::get isSupported");
|
|
return!1;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.getDeviceAt = function(a) {
|
|
s("public flash.ui.GameInput::static getDeviceAt");
|
|
d("RangeError", k.Errors.ParamRangeError, "index");
|
|
return null;
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(f.events.EventDispatcher);
|
|
g.GameInput = a;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.ui.GameInputControl");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "numValues", {get:function() {
|
|
k("public flash.ui.GameInputControl::get numValues");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "index", {get:function() {
|
|
k("public flash.ui.GameInputControl::get index");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "relative", {get:function() {
|
|
k("public flash.ui.GameInputControl::get relative");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "type", {get:function() {
|
|
k("public flash.ui.GameInputControl::get type");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "hand", {get:function() {
|
|
k("public flash.ui.GameInputControl::get hand");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "finger", {get:function() {
|
|
k("public flash.ui.GameInputControl::get finger");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "device", {get:function() {
|
|
k("public flash.ui.GameInputControl::get device");
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.getValueAt = function(a) {
|
|
k("public flash.ui.GameInputControl::getValueAt");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.GameInputControl = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.ui.GameInputControlType");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.MOVEMENT = "movement";
|
|
a.ROTATION = "rotation";
|
|
a.DIRECTION = "direction";
|
|
a.ACCELERATION = "acceleration";
|
|
a.BUTTON = "button";
|
|
a.TRIGGER = "trigger";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GameInputControlType = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.ui.GameInputDevice");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "numControls", {get:function() {
|
|
k("public flash.ui.GameInputDevice::get numControls");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "sampleInterval", {get:function() {
|
|
k("public flash.ui.GameInputDevice::get sampleInterval");
|
|
}, set:function(a) {
|
|
k("public flash.ui.GameInputDevice::set sampleInterval");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "enabled", {get:function() {
|
|
k("public flash.ui.GameInputDevice::get enabled");
|
|
}, set:function(a) {
|
|
k("public flash.ui.GameInputDevice::set enabled");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "id", {get:function() {
|
|
k("public flash.ui.GameInputDevice::get id");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "name", {get:function() {
|
|
k("public flash.ui.GameInputDevice::get name");
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.getControlAt = function(a) {
|
|
k("public flash.ui.GameInputDevice::getControlAt");
|
|
};
|
|
a.prototype.startCachingSamples = function(a, b) {
|
|
k("public flash.ui.GameInputDevice::startCachingSamples");
|
|
};
|
|
a.prototype.stopCachingSamples = function() {
|
|
k("public flash.ui.GameInputDevice::stopCachingSamples");
|
|
};
|
|
a.prototype.getCachedSamples = function(a, b) {
|
|
k("public flash.ui.GameInputDevice::getCachedSamples");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.MAX_BUFFER_SIZE = 4800;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.GameInputDevice = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.ui.GameInputFinger");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.THUMB = "thumb";
|
|
a.INDEX = "index";
|
|
a.MIDDLE = "middle";
|
|
a.UNKNOWN = "unknown";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GameInputFinger = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.ui.GameInputHand");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.RIGHT = "right";
|
|
a.LEFT = "left";
|
|
a.UNKNOWN = "unknown";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.GameInputHand = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(k) {
|
|
var s = b.Debug.notImplemented, m = function() {
|
|
function b() {
|
|
this._lastKeyCode = 0;
|
|
this._captureKeyPress = !1;
|
|
this._charCodeMap = [];
|
|
}
|
|
b.prototype.dispatchKeyboardEvent = function(a) {
|
|
var b = a.keyCode;
|
|
if ("keydown" === a.type) {
|
|
this._lastKeyCode = b;
|
|
if (this._captureKeyPress = 8 === b || 9 === b || 13 === b || 32 === b || 48 <= b && 90 >= b || 145 < b) {
|
|
return;
|
|
}
|
|
this._charCodeMap[b] = 0;
|
|
} else {
|
|
if ("keypress" === a.type) {
|
|
if (this._captureKeyPress) {
|
|
b = this._lastKeyCode, this._charCodeMap[b] = a.charCode;
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
if (this.target) {
|
|
var d = "keyup" === a.type;
|
|
this.target.dispatchEvent(new f.events.KeyboardEvent(d ? "keyUp" : "keyDown", !0, !1, d ? this._charCodeMap[b] : a.charCode, d ? a.keyCode : this._lastKeyCode, a.location, a.ctrlKey, a.altKey, a.shiftKey));
|
|
}
|
|
};
|
|
return b;
|
|
}();
|
|
k.KeyboardEventDispatcher = m;
|
|
m = function(b) {
|
|
function a() {
|
|
s("Dummy Constructor: public flash.ui.Keyboard");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "capsLock", {get:function() {
|
|
s("public flash.ui.Keyboard::get capsLock");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "numLock", {get:function() {
|
|
s("public flash.ui.Keyboard::get numLock");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "hasVirtualKeyboard", {get:function() {
|
|
s("public flash.ui.Keyboard::get hasVirtualKeyboard");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "physicalKeyboardType", {get:function() {
|
|
s("public flash.ui.Keyboard::get physicalKeyboardType");
|
|
}, enumerable:!0, configurable:!0});
|
|
a.isAccessible = function() {
|
|
s("public flash.ui.Keyboard::static isAccessible");
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.KEYNAME_UPARROW = "Up";
|
|
a.KEYNAME_DOWNARROW = "Down";
|
|
a.KEYNAME_LEFTARROW = "Left";
|
|
a.KEYNAME_RIGHTARROW = "Right";
|
|
a.KEYNAME_F1 = "F1";
|
|
a.KEYNAME_F2 = "F2";
|
|
a.KEYNAME_F3 = "F3";
|
|
a.KEYNAME_F4 = "F4";
|
|
a.KEYNAME_F5 = "F5";
|
|
a.KEYNAME_F6 = "F6";
|
|
a.KEYNAME_F7 = "F7";
|
|
a.KEYNAME_F8 = "F8";
|
|
a.KEYNAME_F9 = "F9";
|
|
a.KEYNAME_F10 = "F10";
|
|
a.KEYNAME_F11 = "F11";
|
|
a.KEYNAME_F12 = "F12";
|
|
a.KEYNAME_F13 = "F13";
|
|
a.KEYNAME_F14 = "F14";
|
|
a.KEYNAME_F15 = "F15";
|
|
a.KEYNAME_F16 = "F16";
|
|
a.KEYNAME_F17 = "F17";
|
|
a.KEYNAME_F18 = "F18";
|
|
a.KEYNAME_F19 = "F19";
|
|
a.KEYNAME_F20 = "F20";
|
|
a.KEYNAME_F21 = "F21";
|
|
a.KEYNAME_F22 = "F22";
|
|
a.KEYNAME_F23 = "F23";
|
|
a.KEYNAME_F24 = "F24";
|
|
a.KEYNAME_F25 = "F25";
|
|
a.KEYNAME_F26 = "F26";
|
|
a.KEYNAME_F27 = "F27";
|
|
a.KEYNAME_F28 = "F28";
|
|
a.KEYNAME_F29 = "F29";
|
|
a.KEYNAME_F30 = "F30";
|
|
a.KEYNAME_F31 = "F31";
|
|
a.KEYNAME_F32 = "F32";
|
|
a.KEYNAME_F33 = "F33";
|
|
a.KEYNAME_F34 = "F34";
|
|
a.KEYNAME_F35 = "F35";
|
|
a.KEYNAME_INSERT = "Insert";
|
|
a.KEYNAME_DELETE = "Delete";
|
|
a.KEYNAME_HOME = "Home";
|
|
a.KEYNAME_BEGIN = "Begin";
|
|
a.KEYNAME_END = "End";
|
|
a.KEYNAME_PAGEUP = "PgUp";
|
|
a.KEYNAME_PAGEDOWN = "PgDn";
|
|
a.KEYNAME_PRINTSCREEN = "PrntScrn";
|
|
a.KEYNAME_SCROLLLOCK = "ScrlLck";
|
|
a.KEYNAME_PAUSE = "Pause";
|
|
a.KEYNAME_SYSREQ = "SysReq";
|
|
a.KEYNAME_BREAK = "Break";
|
|
a.KEYNAME_RESET = "Reset";
|
|
a.KEYNAME_STOP = "Stop";
|
|
a.KEYNAME_MENU = "Menu";
|
|
a.KEYNAME_USER = "User";
|
|
a.KEYNAME_SYSTEM = "Sys";
|
|
a.KEYNAME_PRINT = "Print";
|
|
a.KEYNAME_CLEARLINE = "ClrLn";
|
|
a.KEYNAME_CLEARDISPLAY = "ClrDsp";
|
|
a.KEYNAME_INSERTLINE = "InsLn";
|
|
a.KEYNAME_DELETELINE = "DelLn";
|
|
a.KEYNAME_INSERTCHAR = "InsChr";
|
|
a.KEYNAME_DELETECHAR = "DelChr";
|
|
a.KEYNAME_PREV = "Prev";
|
|
a.KEYNAME_NEXT = "Next";
|
|
a.KEYNAME_SELECT = "Select";
|
|
a.KEYNAME_EXECUTE = "Exec";
|
|
a.KEYNAME_UNDO = "Undo";
|
|
a.KEYNAME_REDO = "Redo";
|
|
a.KEYNAME_FIND = "Find";
|
|
a.KEYNAME_HELP = "Help";
|
|
a.KEYNAME_MODESWITCH = "ModeSw";
|
|
a.STRING_UPARROW = "\uf700";
|
|
a.STRING_DOWNARROW = "\uf701";
|
|
a.STRING_LEFTARROW = "\uf702";
|
|
a.STRING_RIGHTARROW = "\uf703";
|
|
a.STRING_F1 = "\uf704";
|
|
a.STRING_F2 = "\uf705";
|
|
a.STRING_F3 = "\uf706";
|
|
a.STRING_F4 = "\uf707";
|
|
a.STRING_F5 = "\uf708";
|
|
a.STRING_F6 = "\uf709";
|
|
a.STRING_F7 = "\uf70a";
|
|
a.STRING_F8 = "\uf70b";
|
|
a.STRING_F9 = "\uf70c";
|
|
a.STRING_F10 = "\uf70d";
|
|
a.STRING_F11 = "\uf70e";
|
|
a.STRING_F12 = "\uf70f";
|
|
a.STRING_F13 = "\uf710";
|
|
a.STRING_F14 = "\uf711";
|
|
a.STRING_F15 = "\uf712";
|
|
a.STRING_F16 = "\uf713";
|
|
a.STRING_F17 = "\uf714";
|
|
a.STRING_F18 = "\uf715";
|
|
a.STRING_F19 = "\uf716";
|
|
a.STRING_F20 = "\uf717";
|
|
a.STRING_F21 = "\uf718";
|
|
a.STRING_F22 = "\uf719";
|
|
a.STRING_F23 = "\uf71a";
|
|
a.STRING_F24 = "\uf71b";
|
|
a.STRING_F25 = "\uf71c";
|
|
a.STRING_F26 = "\uf71d";
|
|
a.STRING_F27 = "\uf71e";
|
|
a.STRING_F28 = "\uf71f";
|
|
a.STRING_F29 = "\uf720";
|
|
a.STRING_F30 = "\uf721";
|
|
a.STRING_F31 = "\uf722";
|
|
a.STRING_F32 = "\uf723";
|
|
a.STRING_F33 = "\uf724";
|
|
a.STRING_F34 = "\uf725";
|
|
a.STRING_F35 = "\uf726";
|
|
a.STRING_INSERT = "\uf727";
|
|
a.STRING_DELETE = "\uf728";
|
|
a.STRING_HOME = "\uf729";
|
|
a.STRING_BEGIN = "\uf72a";
|
|
a.STRING_END = "\uf72b";
|
|
a.STRING_PAGEUP = "\uf72c";
|
|
a.STRING_PAGEDOWN = "\uf72d";
|
|
a.STRING_PRINTSCREEN = "\uf72e";
|
|
a.STRING_SCROLLLOCK = "\uf72f";
|
|
a.STRING_PAUSE = "\uf730";
|
|
a.STRING_SYSREQ = "\uf731";
|
|
a.STRING_BREAK = "\uf732";
|
|
a.STRING_RESET = "\uf733";
|
|
a.STRING_STOP = "\uf734";
|
|
a.STRING_MENU = "\uf735";
|
|
a.STRING_USER = "\uf736";
|
|
a.STRING_SYSTEM = "\uf737";
|
|
a.STRING_PRINT = "\uf738";
|
|
a.STRING_CLEARLINE = "\uf739";
|
|
a.STRING_CLEARDISPLAY = "\uf73a";
|
|
a.STRING_INSERTLINE = "\uf73b";
|
|
a.STRING_DELETELINE = "\uf73c";
|
|
a.STRING_INSERTCHAR = "\uf73d";
|
|
a.STRING_DELETECHAR = "\uf73e";
|
|
a.STRING_PREV = "\uf73f";
|
|
a.STRING_NEXT = "\uf740";
|
|
a.STRING_SELECT = "\uf741";
|
|
a.STRING_EXECUTE = "\uf742";
|
|
a.STRING_UNDO = "\uf743";
|
|
a.STRING_REDO = "\uf744";
|
|
a.STRING_FIND = "\uf745";
|
|
a.STRING_HELP = "\uf746";
|
|
a.STRING_MODESWITCH = "\uf747";
|
|
a.CharCodeStrings = void 0;
|
|
a.NUMBER_0 = 48;
|
|
a.NUMBER_1 = 49;
|
|
a.NUMBER_2 = 50;
|
|
a.NUMBER_3 = 51;
|
|
a.NUMBER_4 = 52;
|
|
a.NUMBER_5 = 53;
|
|
a.NUMBER_6 = 54;
|
|
a.NUMBER_7 = 55;
|
|
a.NUMBER_8 = 56;
|
|
a.NUMBER_9 = 57;
|
|
a.A = 65;
|
|
a.B = 66;
|
|
a.C = 67;
|
|
a.D = 68;
|
|
a.E = 69;
|
|
a.F = 70;
|
|
a.G = 71;
|
|
a.H = 72;
|
|
a.I = 73;
|
|
a.J = 74;
|
|
a.K = 75;
|
|
a.L = 76;
|
|
a.M = 77;
|
|
a.N = 78;
|
|
a.O = 79;
|
|
a.P = 80;
|
|
a.Q = 81;
|
|
a.R = 82;
|
|
a.S = 83;
|
|
a.T = 84;
|
|
a.U = 85;
|
|
a.V = 86;
|
|
a.W = 87;
|
|
a.X = 88;
|
|
a.Y = 89;
|
|
a.Z = 90;
|
|
a.SEMICOLON = 186;
|
|
a.EQUAL = 187;
|
|
a.COMMA = 188;
|
|
a.MINUS = 189;
|
|
a.PERIOD = 190;
|
|
a.SLASH = 191;
|
|
a.BACKQUOTE = 192;
|
|
a.LEFTBRACKET = 219;
|
|
a.BACKSLASH = 220;
|
|
a.RIGHTBRACKET = 221;
|
|
a.QUOTE = 222;
|
|
a.ALTERNATE = 18;
|
|
a.BACKSPACE = 8;
|
|
a.CAPS_LOCK = 20;
|
|
a.COMMAND = 15;
|
|
a.CONTROL = 17;
|
|
a.DELETE = 46;
|
|
a.DOWN = 40;
|
|
a.END = 35;
|
|
a.ENTER = 13;
|
|
a.ESCAPE = 27;
|
|
a.F1 = 112;
|
|
a.F2 = 113;
|
|
a.F3 = 114;
|
|
a.F4 = 115;
|
|
a.F5 = 116;
|
|
a.F6 = 117;
|
|
a.F7 = 118;
|
|
a.F8 = 119;
|
|
a.F9 = 120;
|
|
a.F10 = 121;
|
|
a.F11 = 122;
|
|
a.F12 = 123;
|
|
a.F13 = 124;
|
|
a.F14 = 125;
|
|
a.F15 = 126;
|
|
a.HOME = 36;
|
|
a.INSERT = 45;
|
|
a.LEFT = 37;
|
|
a.NUMPAD = 21;
|
|
a.NUMPAD_0 = 96;
|
|
a.NUMPAD_1 = 97;
|
|
a.NUMPAD_2 = 98;
|
|
a.NUMPAD_3 = 99;
|
|
a.NUMPAD_4 = 100;
|
|
a.NUMPAD_5 = 101;
|
|
a.NUMPAD_6 = 102;
|
|
a.NUMPAD_7 = 103;
|
|
a.NUMPAD_8 = 104;
|
|
a.NUMPAD_9 = 105;
|
|
a.NUMPAD_ADD = 107;
|
|
a.NUMPAD_DECIMAL = 110;
|
|
a.NUMPAD_DIVIDE = 111;
|
|
a.NUMPAD_ENTER = 108;
|
|
a.NUMPAD_MULTIPLY = 106;
|
|
a.NUMPAD_SUBTRACT = 109;
|
|
a.PAGE_DOWN = 34;
|
|
a.PAGE_UP = 33;
|
|
a.RIGHT = 39;
|
|
a.SHIFT = 16;
|
|
a.SPACE = 32;
|
|
a.TAB = 9;
|
|
a.UP = 38;
|
|
a.RED = 16777216;
|
|
a.GREEN = 16777217;
|
|
a.YELLOW = 16777218;
|
|
a.BLUE = 16777219;
|
|
a.CHANNEL_UP = 16777220;
|
|
a.CHANNEL_DOWN = 16777221;
|
|
a.RECORD = 16777222;
|
|
a.PLAY = 16777223;
|
|
a.PAUSE = 16777224;
|
|
a.STOP = 16777225;
|
|
a.FAST_FORWARD = 16777226;
|
|
a.REWIND = 16777227;
|
|
a.SKIP_FORWARD = 16777228;
|
|
a.SKIP_BACKWARD = 16777229;
|
|
a.NEXT = 16777230;
|
|
a.PREVIOUS = 16777231;
|
|
a.LIVE = 16777232;
|
|
a.LAST = 16777233;
|
|
a.MENU = 16777234;
|
|
a.INFO = 16777235;
|
|
a.GUIDE = 16777236;
|
|
a.EXIT = 16777237;
|
|
a.BACK = 16777238;
|
|
a.AUDIO = 16777239;
|
|
a.SUBTITLE = 16777240;
|
|
a.DVR = 16777241;
|
|
a.VOD = 16777242;
|
|
a.INPUT = 16777243;
|
|
a.SETUP = 16777244;
|
|
a.HELP = 16777245;
|
|
a.MASTER_SHELL = 16777246;
|
|
a.SEARCH = 16777247;
|
|
return a;
|
|
}(g.ASNative);
|
|
k.Keyboard = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(k) {
|
|
var s = b.Debug.notImplemented, m = b.Debug.somewhatImplemented, d = b.Debug.assert, a = b.AVM2.Runtime.asCoerceString, c = f.events, n = function() {
|
|
function a() {
|
|
this.currentTarget = this.stage = null;
|
|
}
|
|
a.prototype._findTarget = function(a) {
|
|
var b = [];
|
|
this.stage._containsGlobalPoint(20 * a.x | 0, 20 * a.y | 0, 3, b);
|
|
d(2 > b.length);
|
|
return b.length ? b[0] : this.stage;
|
|
};
|
|
a.prototype._dispatchMouseEvent = function(a, b, d, f) {
|
|
"undefined" === typeof f && (f = null);
|
|
var g = a.globalToLocal(d.point);
|
|
b = new c.MouseEvent(b, b !== c.MouseEvent.ROLL_OVER && b !== c.MouseEvent.ROLL_OUT && b !== c.MouseEvent.MOUSE_LEAVE, !1, g.x, g.y, f, d.ctrlKey, d.altKey, d.shiftKey, !!d.buttons);
|
|
a.dispatchEvent(b);
|
|
};
|
|
a.prototype.handleMouseEvent = function(a) {
|
|
var b = this.stage;
|
|
if (!b) {
|
|
return b;
|
|
}
|
|
var d = a.point;
|
|
f.ui.Mouse.updateCurrentPosition(d);
|
|
var g = this.currentTarget;
|
|
if (0 > d.x || d.x > b.stageWidth || 0 > d.y || d.y > b.stageHeight) {
|
|
return g && this._dispatchMouseEvent(b, c.MouseEvent.MOUSE_LEAVE, a), this.currentTarget = null, b;
|
|
}
|
|
var d = this._findTarget(d), k = f.events.MouseEvent.typeFromDOMType(a.type);
|
|
switch(k) {
|
|
case c.MouseEvent.MOUSE_DOWN:
|
|
a.buttons & 1 ? a.buttons = 1 : a.buttons & 2 ? (k = c.MouseEvent.MIDDLE_MOUSE_DOWN, a.buttons = 2) : a.buttons & 4 && (k = c.MouseEvent.RIGHT_MOUSE_DOWN, a.buttons = 4);
|
|
d._mouseDown = !0;
|
|
break;
|
|
case c.MouseEvent.MOUSE_UP:
|
|
a.buttons & 1 ? a.buttons = 1 : a.buttons & 2 ? (k = c.MouseEvent.MIDDLE_MOUSE_UP, a.buttons = 2) : a.buttons & 4 && (k = c.MouseEvent.RIGHT_MOUSE_UP, a.buttons = 4);
|
|
d._mouseDown = !1;
|
|
break;
|
|
case c.MouseEvent.CLICK:
|
|
a.buttons & 1 || (a.buttons & 2 ? k = c.MouseEvent.MIDDLE_CLICK : a.buttons & 4 && (k = c.MouseEvent.RIGHT_CLICK));
|
|
a.buttons = 0;
|
|
break;
|
|
case c.MouseEvent.DOUBLE_CLICK:
|
|
if (!d.doubleClickEnabled) {
|
|
return;
|
|
}
|
|
a.buttons = 0;
|
|
break;
|
|
case c.MouseEvent.MOUSE_MOVE:
|
|
this.currentTarget = d;
|
|
a.buttons &= 1;
|
|
if (d === g) {
|
|
break;
|
|
}
|
|
var m = d.findNearestCommonAncestor(g);
|
|
if (g && g !== b) {
|
|
g._mouseOver = !1;
|
|
g._mouseDown = !1;
|
|
this._dispatchMouseEvent(g, c.MouseEvent.MOUSE_OUT, a, d);
|
|
for (var h = g;h !== m;) {
|
|
this._dispatchMouseEvent(h, c.MouseEvent.ROLL_OUT, a, d), h = h.parent;
|
|
}
|
|
}
|
|
if (d === b) {
|
|
break;
|
|
}
|
|
for (b = d;b !== m;) {
|
|
this._dispatchMouseEvent(b, c.MouseEvent.ROLL_OVER, a, g), b = b.parent;
|
|
}
|
|
d._mouseOver = !0;
|
|
this._dispatchMouseEvent(d, c.MouseEvent.MOUSE_OVER, a, g);
|
|
return d;
|
|
}
|
|
this._dispatchMouseEvent(d, k, a);
|
|
return d;
|
|
};
|
|
return a;
|
|
}();
|
|
k.MouseEventDispatcher = n;
|
|
(function(a) {
|
|
a[a.Left = 1] = "Left";
|
|
a[a.Middle = 2] = "Middle";
|
|
a[a.Right = 4] = "Right";
|
|
})(k.MouseButtonFlags || (k.MouseButtonFlags = {}));
|
|
n = function(b) {
|
|
function c() {
|
|
s("Dummy Constructor: public flash.ui.Mouse");
|
|
}
|
|
__extends(c, b);
|
|
Object.defineProperty(c.prototype, "supportsCursor", {get:function() {
|
|
s("public flash.ui.Mouse::get supportsCursor");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "cursor", {get:function() {
|
|
s("public flash.ui.Mouse::get cursor");
|
|
}, set:function(b) {
|
|
a(b);
|
|
s("public flash.ui.Mouse::set cursor");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "supportsNativeCursor", {get:function() {
|
|
s("public flash.ui.Mouse::get supportsNativeCursor");
|
|
}, enumerable:!0, configurable:!0});
|
|
c.hide = function() {
|
|
m("public flash.ui.Mouse::static hide");
|
|
};
|
|
c.show = function() {
|
|
m("public flash.ui.Mouse::static show");
|
|
};
|
|
c.registerCursor = function(b, c) {
|
|
a(b);
|
|
s("public flash.ui.Mouse::static registerCursor");
|
|
};
|
|
c.unregisterCursor = function(b) {
|
|
a(b);
|
|
s("public flash.ui.Mouse::static unregisterCursor");
|
|
};
|
|
c.updateCurrentPosition = function(a) {
|
|
this._currentPosition.copyFrom(a);
|
|
};
|
|
c.classInitializer = function() {
|
|
this._currentPosition = new f.geom.Point;
|
|
};
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = null;
|
|
return c;
|
|
}(g.ASNative);
|
|
k.Mouse = n;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.ui.MouseCursorData");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "data", {get:function() {
|
|
k("public flash.ui.MouseCursorData::get data");
|
|
}, set:function(a) {
|
|
k("public flash.ui.MouseCursorData::set data");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "hotSpot", {get:function() {
|
|
k("public flash.ui.MouseCursorData::get hotSpot");
|
|
}, set:function(a) {
|
|
k("public flash.ui.MouseCursorData::set hotSpot");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "frameRate", {get:function() {
|
|
k("public flash.ui.MouseCursorData::get frameRate");
|
|
}, set:function(a) {
|
|
k("public flash.ui.MouseCursorData::set frameRate");
|
|
}, enumerable:!0, configurable:!0});
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.MouseCursorData = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.somewhatImplemented, m = b.Debug.notImplemented, d = b.AVM2.Runtime.asCoerceString, a = function(a) {
|
|
function b() {
|
|
m("Dummy Constructor: public flash.ui.Multitouch");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "inputMode", {get:function() {
|
|
m("public flash.ui.Multitouch::get inputMode");
|
|
}, set:function(a) {
|
|
d(a);
|
|
m("public flash.ui.Multitouch::set inputMode");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "supportsTouchEvents", {get:function() {
|
|
k("public flash.ui.Multitouch::get supportsTouchEvents");
|
|
return!1;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "supportsGestureEvents", {get:function() {
|
|
k("public flash.ui.Multitouch::get supportsGestureEvents");
|
|
return!1;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "supportedGestures", {get:function() {
|
|
k("public flash.ui.Multitouch::get supportedGestures");
|
|
return null;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "maxTouchPoints", {get:function() {
|
|
k("public flash.ui.Multitouch::get maxTouchPoints");
|
|
return 0;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "mapTouchToMouse", {get:function() {
|
|
k("public flash.ui.Multitouch::get mapTouchToMouse");
|
|
return!0;
|
|
}, set:function(a) {
|
|
m("public flash.ui.Multitouch::set mapTouchToMouse");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.Multitouch = a;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.ui.MultitouchInputMode");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.NONE = "none";
|
|
a.GESTURE = "gesture";
|
|
a.TOUCH_POINT = "touchPoint";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.MultitouchInputMode = m;
|
|
})(f.ui || (f.ui = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.utils.Endian");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
a.BIG_ENDIAN = "bigEndian";
|
|
a.LITTLE_ENDIAN = "littleEndian";
|
|
return a;
|
|
}(g.ASNative);
|
|
f.Endian = m;
|
|
})(f.utils || (f.utils = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Shumway$$inline_615 = Shumway || (Shumway = {}), AVM2$$inline_616 = Shumway$$inline_615.AVM2 || (Shumway$$inline_615.AVM2 = {}), AS$$inline_617 = AVM2$$inline_616.AS || (AVM2$$inline_616.AS = {}), flash$$inline_618 = AS$$inline_617.flash || (AS$$inline_617.flash = {}), utils$$inline_619 = flash$$inline_618.utils || (flash$$inline_618.utils = {}), utils$$inline_620 = flash$$inline_618.utils, flash$$inline_621 = AS$$inline_617.flash, AS$$inline_622 = AVM2$$inline_616.AS, AVM2$$inline_623 = Shumway$$inline_615.AVM2,
|
|
Shumway$$inline_625 = Shumway || (Shumway = {}), AVM2$$inline_626 = Shumway$$inline_625.AVM2 || (Shumway$$inline_625.AVM2 = {}), AS$$inline_627 = AVM2$$inline_626.AS || (AVM2$$inline_626.AS = {}), flash$$inline_628 = AS$$inline_627.flash || (AS$$inline_627.flash = {}), utils$$inline_629 = flash$$inline_628.utils || (flash$$inline_628.utils = {}), utils$$inline_630 = flash$$inline_628.utils, flash$$inline_631 = AS$$inline_627.flash, AS$$inline_632 = AVM2$$inline_626.AS, AVM2$$inline_633 = Shumway$$inline_625.AVM2,
|
|
Shumway$$inline_635 = Shumway || (Shumway = {}), AVM2$$inline_636 = Shumway$$inline_635.AVM2 || (Shumway$$inline_635.AVM2 = {}), AS$$inline_637 = AVM2$$inline_636.AS || (AVM2$$inline_636.AS = {}), flash$$inline_638 = AS$$inline_637.flash || (AS$$inline_637.flash = {}), utils$$inline_639 = flash$$inline_638.utils || (flash$$inline_638.utils = {}), utils$$inline_640 = flash$$inline_638.utils, flash$$inline_641 = AS$$inline_637.flash, AS$$inline_642 = AVM2$$inline_636.AS, AVM2$$inline_643 = Shumway$$inline_635.AVM2;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b() {
|
|
k("Dummy Constructor: packageInternal flash.utils.ObjectInput");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "bytesAvailable", {get:function() {
|
|
k("packageInternal flash.utils.ObjectInput::get bytesAvailable");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "objectEncoding", {get:function() {
|
|
k("packageInternal flash.utils.ObjectInput::get objectEncoding");
|
|
}, set:function(a) {
|
|
k("packageInternal flash.utils.ObjectInput::set objectEncoding");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "endian", {get:function() {
|
|
k("packageInternal flash.utils.ObjectInput::get endian");
|
|
}, set:function(a) {
|
|
m(a);
|
|
k("packageInternal flash.utils.ObjectInput::set endian");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.readBytes = function(a, b, c) {
|
|
k("packageInternal flash.utils.ObjectInput::readBytes");
|
|
};
|
|
b.prototype.readBoolean = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readBoolean");
|
|
};
|
|
b.prototype.readByte = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readByte");
|
|
};
|
|
b.prototype.readUnsignedByte = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readUnsignedByte");
|
|
};
|
|
b.prototype.readShort = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readShort");
|
|
};
|
|
b.prototype.readUnsignedShort = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readUnsignedShort");
|
|
};
|
|
b.prototype.readInt = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readInt");
|
|
};
|
|
b.prototype.readUnsignedInt = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readUnsignedInt");
|
|
};
|
|
b.prototype.readFloat = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readFloat");
|
|
};
|
|
b.prototype.readDouble = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readDouble");
|
|
};
|
|
b.prototype.readMultiByte = function(a, b) {
|
|
m(b);
|
|
k("packageInternal flash.utils.ObjectInput::readMultiByte");
|
|
};
|
|
b.prototype.readUTF = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readUTF");
|
|
};
|
|
b.prototype.readUTFBytes = function(a) {
|
|
k("packageInternal flash.utils.ObjectInput::readUTFBytes");
|
|
};
|
|
b.prototype.readObject = function() {
|
|
k("packageInternal flash.utils.ObjectInput::readObject");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.ObjectInput = d;
|
|
})(f.utils || (f.utils = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b() {
|
|
k("Dummy Constructor: packageInternal flash.utils.ObjectOutput");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "objectEncoding", {get:function() {
|
|
k("packageInternal flash.utils.ObjectOutput::get objectEncoding");
|
|
}, set:function(a) {
|
|
k("packageInternal flash.utils.ObjectOutput::set objectEncoding");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "endian", {get:function() {
|
|
k("packageInternal flash.utils.ObjectOutput::get endian");
|
|
}, set:function(a) {
|
|
m(a);
|
|
k("packageInternal flash.utils.ObjectOutput::set endian");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.writeBytes = function(a, b, c) {
|
|
k("packageInternal flash.utils.ObjectOutput::writeBytes");
|
|
};
|
|
b.prototype.writeBoolean = function(a) {
|
|
k("packageInternal flash.utils.ObjectOutput::writeBoolean");
|
|
};
|
|
b.prototype.writeByte = function(a) {
|
|
k("packageInternal flash.utils.ObjectOutput::writeByte");
|
|
};
|
|
b.prototype.writeShort = function(a) {
|
|
k("packageInternal flash.utils.ObjectOutput::writeShort");
|
|
};
|
|
b.prototype.writeInt = function(a) {
|
|
k("packageInternal flash.utils.ObjectOutput::writeInt");
|
|
};
|
|
b.prototype.writeUnsignedInt = function(a) {
|
|
k("packageInternal flash.utils.ObjectOutput::writeUnsignedInt");
|
|
};
|
|
b.prototype.writeFloat = function(a) {
|
|
k("packageInternal flash.utils.ObjectOutput::writeFloat");
|
|
};
|
|
b.prototype.writeDouble = function(a) {
|
|
k("packageInternal flash.utils.ObjectOutput::writeDouble");
|
|
};
|
|
b.prototype.writeMultiByte = function(a, b) {
|
|
m(a);
|
|
m(b);
|
|
k("packageInternal flash.utils.ObjectOutput::writeMultiByte");
|
|
};
|
|
b.prototype.writeUTF = function(a) {
|
|
m(a);
|
|
k("packageInternal flash.utils.ObjectOutput::writeUTF");
|
|
};
|
|
b.prototype.writeUTFBytes = function(a) {
|
|
m(a);
|
|
k("packageInternal flash.utils.ObjectOutput::writeUTFBytes");
|
|
};
|
|
b.prototype.writeObject = function(a) {
|
|
k("packageInternal flash.utils.ObjectOutput::writeObject");
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = null;
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.ObjectOutput = d;
|
|
})(f.utils || (f.utils = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, b) {
|
|
k("Dummy Constructor: public flash.utils.Timer");
|
|
}
|
|
__extends(a, b);
|
|
Object.defineProperty(a.prototype, "running", {get:function() {
|
|
return this._running;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.stop = function() {
|
|
this._running = !1;
|
|
clearInterval(this._interval);
|
|
};
|
|
a.prototype._start = function(a, b) {
|
|
this._delay = +a;
|
|
this._running = !0;
|
|
this._interval = setInterval(b, a);
|
|
};
|
|
a.prototype._tick = function() {
|
|
this._running && f.utils.Timer.dispatchingEnabled && this.dispatchEvent(new f.events.TimerEvent("timer", !0, !1));
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = ["start!"];
|
|
a.dispatchingEnabled = !0;
|
|
return a;
|
|
}(f.events.EventDispatcher);
|
|
g.Timer = m;
|
|
})(f.utils || (f.utils = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a(a, b, d, e) {
|
|
k("Dummy Constructor: packageInternal flash.utils.SetIntervalTimer");
|
|
}
|
|
__extends(a, b);
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(f.utils.Timer);
|
|
g.SetIntervalTimer = m;
|
|
})(f.utils || (f.utils = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b(a, c) {
|
|
m(c);
|
|
k("Dummy Constructor: public flash.xml.XMLNode");
|
|
}
|
|
__extends(b, a);
|
|
b.escapeXML = function(a) {
|
|
m(a);
|
|
k("public flash.xml.XMLNode::static escapeXML");
|
|
};
|
|
b.initializer = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.XMLNode = d;
|
|
})(f.xml || (f.xml = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(g) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b(a) {
|
|
"undefined" === typeof a && (a = null);
|
|
m(a);
|
|
k("Dummy Constructor: public flash.xml.XMLDocument");
|
|
}
|
|
__extends(b, a);
|
|
b.initializer = null;
|
|
return b;
|
|
}(f.xml.XMLNode);
|
|
g.XMLDocument = d;
|
|
})(f.xml || (f.xml = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = function(b) {
|
|
function a() {
|
|
k("Dummy Constructor: public flash.xml.XMLNodeType");
|
|
}
|
|
__extends(a, b);
|
|
a.initializer = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.XMLNodeType = m;
|
|
})(f.xml || (f.xml = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b() {
|
|
k("Dummy Constructor: packageInternal flash.xml.XMLParser");
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.startParse = function(a, b) {
|
|
m(a);
|
|
k("packageInternal flash.xml.XMLParser::startParse");
|
|
};
|
|
b.prototype.getNext = function(a) {
|
|
k("packageInternal flash.xml.XMLParser::getNext");
|
|
};
|
|
b.initializer = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.XMLParser = d;
|
|
})(f.xml || (f.xml = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
(function(f) {
|
|
var k = b.Debug.notImplemented, m = b.AVM2.Runtime.asCoerceString, d = function(a) {
|
|
function b() {
|
|
k("Dummy Constructor: packageInternal flash.xml.XMLTag");
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "type", {get:function() {
|
|
k("packageInternal flash.xml.XMLTag::get type");
|
|
}, set:function(a) {
|
|
k("packageInternal flash.xml.XMLTag::set type");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "empty", {get:function() {
|
|
k("packageInternal flash.xml.XMLTag::get empty");
|
|
}, set:function(a) {
|
|
k("packageInternal flash.xml.XMLTag::set empty");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "value", {get:function() {
|
|
k("packageInternal flash.xml.XMLTag::get value");
|
|
}, set:function(a) {
|
|
m(a);
|
|
k("packageInternal flash.xml.XMLTag::set value");
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "attrs", {get:function() {
|
|
k("packageInternal flash.xml.XMLTag::get attrs");
|
|
}, set:function(a) {
|
|
k("packageInternal flash.xml.XMLTag::set attrs");
|
|
}, enumerable:!0, configurable:!0});
|
|
b.initializer = null;
|
|
return b;
|
|
}(g.ASNative);
|
|
f.XMLTag = d;
|
|
})(f.xml || (f.xml = {}));
|
|
})(g.flash || (g.flash = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = b.Debug.notImplemented, f = b.isInteger, t = b.Debug.assert, s = b.Debug.warning, m = b.Bounds, d = b.AVM2.AS.flash, a = b.AVM2.AS.flash.display.ActionScriptVersion, c = function() {
|
|
return function(a, b) {
|
|
this.id = -1;
|
|
t(f(a));
|
|
this.id = a;
|
|
this.symbolClass = b;
|
|
this.isAVM1Object = !1;
|
|
};
|
|
}();
|
|
k.Symbol = c;
|
|
var n = function(a) {
|
|
function b(c, d, h) {
|
|
"undefined" === typeof h && (h = !0);
|
|
a.call(this, c, d);
|
|
this.dynamic = h;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype._setBoundsFromData = function(a) {
|
|
this.fillBounds = a.fillBounds ? m.FromUntyped(a.fillBounds) : null;
|
|
this.lineBounds = a.lineBounds ? m.FromUntyped(a.lineBounds) : null;
|
|
!this.lineBounds && this.fillBounds && (this.lineBounds = this.fillBounds.clone());
|
|
};
|
|
return b;
|
|
}(c);
|
|
k.DisplaySymbol = n;
|
|
var p = function(a) {
|
|
function b(c, e) {
|
|
"undefined" === typeof e && (e = d.display.Shape);
|
|
a.call(this, c, e, !1);
|
|
this.graphics = null;
|
|
}
|
|
__extends(b, a);
|
|
b.FromData = function(a, c) {
|
|
var h = new b(a.id);
|
|
h._setBoundsFromData(a);
|
|
h.graphics = d.display.Graphics.FromData(a);
|
|
h.processRequires(a.require, c);
|
|
return h;
|
|
};
|
|
b.prototype.processRequires = function(a, b) {
|
|
if (a) {
|
|
for (var c = this.graphics._textures, d = 0;d < a.length;d++) {
|
|
var e = b.getSymbolById(a[d]);
|
|
t(e, "Bitmap symbol is not defined.");
|
|
var f = e.symbolClass.initializeFrom(e);
|
|
e.symbolClass.instanceConstructorNoInitialize.call(f);
|
|
c.push(f);
|
|
}
|
|
}
|
|
};
|
|
return b;
|
|
}(n);
|
|
k.ShapeSymbol = p;
|
|
p = function(a) {
|
|
function b(c) {
|
|
a.call(this, c, d.display.MorphShape);
|
|
}
|
|
__extends(b, a);
|
|
b.FromData = function(a, c) {
|
|
var h = new b(a.id);
|
|
h._setBoundsFromData(a);
|
|
h.graphics = d.display.Graphics.FromData(a);
|
|
h.processRequires(a.require, c);
|
|
h.morphFillBounds = a.morphFillBounds;
|
|
h.morphLineBounds = a.morphLineBounds;
|
|
return h;
|
|
};
|
|
return b;
|
|
}(p);
|
|
k.MorphShapeSymbol = p;
|
|
p = function(a) {
|
|
function b(c) {
|
|
a.call(this, c, d.display.BitmapData);
|
|
}
|
|
__extends(b, a);
|
|
b.FromData = function(a) {
|
|
var c = new b(a.id);
|
|
c.width = a.width;
|
|
c.height = a.height;
|
|
c.data = a.data;
|
|
switch(a.mimeType) {
|
|
case "application/octet-stream":
|
|
c.type = a.dataType;
|
|
break;
|
|
case "image/jpeg":
|
|
c.type = 4;
|
|
break;
|
|
case "image/png":
|
|
c.type = 5;
|
|
break;
|
|
case "image/gif":
|
|
c.type = 6;
|
|
break;
|
|
default:
|
|
g(a.mimeType);
|
|
}
|
|
return c;
|
|
};
|
|
return b;
|
|
}(n);
|
|
k.BitmapSymbol = p;
|
|
p = function(a) {
|
|
function c(b) {
|
|
a.call(this, b, d.text.TextField);
|
|
this.size = this.color = 0;
|
|
this.font = "";
|
|
this.fontClass = null;
|
|
this.align = d.text.TextFormatAlign.LEFT;
|
|
this.leading = this.indent = this.rightMargin = this.leftMargin = 0;
|
|
this.embedFonts = this.wordWrap = this.multiline = !1;
|
|
this.selectable = !0;
|
|
this.border = !1;
|
|
this.initialText = "";
|
|
this.displayAsPassword = this.html = !1;
|
|
this.type = d.text.TextFieldType.DYNAMIC;
|
|
this.maxChars = 0;
|
|
this.autoSize = d.text.TextFieldAutoSize.NONE;
|
|
this.textContent = this.variableName = null;
|
|
}
|
|
__extends(c, a);
|
|
c.FromTextData = function(a) {
|
|
var e = new c(a.id);
|
|
e._setBoundsFromData(a);
|
|
var h = a.tag;
|
|
if (a.static && (e.dynamic = !1, e.symbolClass = d.text.StaticText, h.initialText)) {
|
|
var f = new b.TextContent;
|
|
f.bounds = e.lineBounds;
|
|
f.parseHtml(h.initialText);
|
|
f.matrix = d.geom.Matrix.FromUntyped(a.matrix);
|
|
f.coords = a.coords;
|
|
e.textContent = f;
|
|
}
|
|
h.hasColor && (e.color = h.color >>> 8);
|
|
h.hasFont && (e.size = h.fontHeight, (a = d.text.Font.getBySymbolId(h.fontId)) ? (e.font = a.fontName, h.fontClass && (e.fontClass = b.AVM2.Runtime.AVM2.instance.applicationDomain.getClass(h.fontClass))) : s("Font " + h.fontId + " is not defined."));
|
|
h.hasLayout && (e.align = d.text.TextFormatAlign.fromNumber(h.align), e.leftMargin = h.leftMargin, e.rightMargin = h.rightMargin, e.indent = h.indent, e.leading = h.leading);
|
|
e.multiline = !!h.multiline;
|
|
e.wordWrap = !!h.wordWrap;
|
|
e.embedFonts = !!h.useOutlines;
|
|
e.selectable = !h.noSelect;
|
|
e.border = !!h.border;
|
|
h.hasText && (e.initialText = h.initialText);
|
|
e.html = !!h.html;
|
|
e.displayAsPassword = !!h.password;
|
|
e.type = h.readonly ? d.text.TextFieldType.DYNAMIC : d.text.TextFieldType.INPUT;
|
|
h.hasMaxLength && (e.maxChars = h.maxLength);
|
|
e.autoSize = h.autoSize ? d.text.TextFieldAutoSize.LEFT : d.text.TextFieldAutoSize.NONE;
|
|
e.variableName = h.variableName;
|
|
return e;
|
|
};
|
|
return c;
|
|
}(n);
|
|
k.TextSymbol = p;
|
|
p = function(b) {
|
|
function c(a) {
|
|
b.call(this, a, d.display.SimpleButton);
|
|
this.hitTestState = this.downState = this.overState = this.upState = null;
|
|
}
|
|
__extends(c, b);
|
|
c.FromData = function(b, e) {
|
|
var h = new c(b.id);
|
|
e.actionScriptVersion === a.ACTIONSCRIPT2 && (h.isAVM1Object = !0, h.buttonActions = b.buttonActions);
|
|
var f = b.states, g, l, m, n;
|
|
for (n in f) {
|
|
var p = f[n];
|
|
1 === p.length ? (p = p[0], g = e.getSymbolById(p.symbolId), l = d.geom.Matrix.FromUntyped(p.matrix), p.cxform && (m = d.geom.ColorTransform.FromCXForm(p.cxform))) : (g = new k.SpriteSymbol(-1), g.frames.push(new q(e, p)));
|
|
h[n + "State"] = new k.AnimationState(g, 0, l, m);
|
|
}
|
|
return h;
|
|
};
|
|
return c;
|
|
}(n);
|
|
k.ButtonSymbol = p;
|
|
n = function(b) {
|
|
function c(a, e) {
|
|
"undefined" === typeof e && (e = !1);
|
|
b.call(this, a, d.display.MovieClip);
|
|
this.numFrames = 1;
|
|
this.frames = [];
|
|
this.labels = [];
|
|
this.frameScripts = [];
|
|
this.isRoot = e;
|
|
}
|
|
__extends(c, b);
|
|
c.FromData = function(b, e) {
|
|
var h = new c(b.id);
|
|
h.numFrames = b.frameCount;
|
|
e.actionScriptVersion === a.ACTIONSCRIPT2 && (h.isAVM1Object = !0, h.avm1Context = e._avm1Context);
|
|
h.frameScripts = b.frameScripts;
|
|
for (var f = b.frames, g = 1, k = 0;k < f.length;k++) {
|
|
for (var l = f[k], m = new q(e, l.commands), n = l.repeat;n--;) {
|
|
h.frames.push(m);
|
|
}
|
|
l.labelName && h.labels.push(new d.display.FrameLabel(l.labelName, g));
|
|
g += l.repeat;
|
|
}
|
|
return h;
|
|
};
|
|
return c;
|
|
}(n);
|
|
k.SpriteSymbol = n;
|
|
n = function(a) {
|
|
function b(c) {
|
|
a.call(this, c, d.text.Font);
|
|
this.name = "";
|
|
this.italic = this.bold = !1;
|
|
}
|
|
__extends(b, a);
|
|
b.FromData = function(a) {
|
|
var c = new b(a.id);
|
|
c.name = a.name;
|
|
c.bold = a.bold;
|
|
c.italic = a.italic;
|
|
c.data = a.data;
|
|
c.metrics = a.metrics;
|
|
return c;
|
|
};
|
|
return b;
|
|
}(c);
|
|
k.FontSymbol = n;
|
|
n = function(a) {
|
|
function b(c) {
|
|
a.call(this, c, d.media.Sound);
|
|
}
|
|
__extends(b, a);
|
|
b.FromData = function(a) {
|
|
var c = new b(a.id);
|
|
c.channels = a.channels;
|
|
c.sampleRate = a.sampleRate;
|
|
c.pcm = a.pcm;
|
|
c.packaged = a.packaged;
|
|
return c;
|
|
};
|
|
return b;
|
|
}(c);
|
|
k.SoundSymbol = n;
|
|
c = function(a) {
|
|
function b(c) {
|
|
a.call(this, c, d.utils.ByteArray);
|
|
}
|
|
__extends(b, a);
|
|
b.FromData = function(a) {
|
|
var c = new b(a.id);
|
|
c.buffer = a.data;
|
|
c.byteLength = a.data.byteLength;
|
|
return c;
|
|
};
|
|
return b;
|
|
}(c);
|
|
k.BinarySymbol = c;
|
|
c = function() {
|
|
function a(b, c, d, h, e, f, g, k, l, m, n, p, q) {
|
|
"undefined" === typeof b && (b = null);
|
|
"undefined" === typeof c && (c = 0);
|
|
"undefined" === typeof d && (d = null);
|
|
"undefined" === typeof h && (h = null);
|
|
"undefined" === typeof e && (e = 0);
|
|
"undefined" === typeof f && (f = null);
|
|
"undefined" === typeof g && (g = -1);
|
|
"undefined" === typeof k && (k = null);
|
|
"undefined" === typeof l && (l = null);
|
|
"undefined" === typeof m && (m = !1);
|
|
"undefined" === typeof n && (n = !0);
|
|
"undefined" === typeof p && (p = null);
|
|
"undefined" === typeof q && (q = null);
|
|
this.symbol = b;
|
|
this.depth = c;
|
|
this.matrix = d;
|
|
this.colorTransform = h;
|
|
this.ratio = e;
|
|
this.name = f;
|
|
this.clipDepth = g;
|
|
this.filters = k;
|
|
this.blendMode = l;
|
|
this.cacheAsBitmap = m;
|
|
this.visible = n;
|
|
this.events = p;
|
|
this.variableName = q;
|
|
}
|
|
a.prototype.canBeAnimated = function(a) {
|
|
if (!a._hasFlags(2048) || a._depth !== this.depth) {
|
|
return!1;
|
|
}
|
|
var b = this.symbol;
|
|
return!b || !b.dynamic && a._clipDepth === this.clipDepth && b.symbolClass.isType(a) ? !0 : !1;
|
|
};
|
|
return a;
|
|
}();
|
|
k.AnimationState = c;
|
|
var e = function() {
|
|
return function(a, b) {
|
|
this.soundId = a;
|
|
this.soundInfo = b;
|
|
};
|
|
}();
|
|
k.SoundStart = e;
|
|
var q = function() {
|
|
function c(a, b) {
|
|
this.loaderInfo = a;
|
|
this.commands = b;
|
|
this._stateAtDepth = null;
|
|
this._soundStarts = void 0;
|
|
}
|
|
Object.defineProperty(c.prototype, "stateAtDepth", {get:function() {
|
|
return this._stateAtDepth || this._initialize();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(c.prototype, "soundStarts", {get:function() {
|
|
void 0 === this._soundStarts && this._initialize();
|
|
return this._soundStarts;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype._initialize = function() {
|
|
for (var c = this._stateAtDepth = Object.create(null), f = null, g = this.commands, h = this.loaderInfo, l = 0;l < g.length;l++) {
|
|
var m = g[l], n = m.depth;
|
|
switch(m.code) {
|
|
case 5:
|
|
;
|
|
case 28:
|
|
c[n] = null;
|
|
break;
|
|
case 15:
|
|
f || (f = []);
|
|
f.push(new e(m.soundId, m.soundInfo));
|
|
break;
|
|
default:
|
|
var p = null, q = null, E = null, O = null, K = null;
|
|
if (m.symbolId && (p = h.getSymbolById(m.symbolId), !p)) {
|
|
s("Symbol " + m.symbolId + " is not defined.");
|
|
continue;
|
|
}
|
|
m.flags & 4 && (q = d.geom.Matrix.FromUntyped(m.matrix));
|
|
m.flags & 8 && (E = d.geom.ColorTransform.FromCXForm(m.cxform));
|
|
if (m.flags & 256) {
|
|
for (var O = [], F = m.filters, J = 0;J < F.length;J++) {
|
|
var A = F[J], B;
|
|
switch(A.type) {
|
|
case 0:
|
|
B = d.filters.DropShadowFilter.FromUntyped(A);
|
|
break;
|
|
case 1:
|
|
B = d.filters.BlurFilter.FromUntyped(A);
|
|
break;
|
|
case 2:
|
|
B = d.filters.GlowFilter.FromUntyped(A);
|
|
break;
|
|
case 3:
|
|
B = d.filters.BevelFilter.FromUntyped(A);
|
|
break;
|
|
case 4:
|
|
B = d.filters.GradientGlowFilter.FromUntyped(A);
|
|
break;
|
|
case 5:
|
|
B = d.filters.ConvolutionFilter.FromUntyped(A);
|
|
break;
|
|
case 6:
|
|
B = d.filters.ColorMatrixFilter.FromUntyped(A);
|
|
break;
|
|
case 7:
|
|
B = d.filters.GradientBevelFilter.FromUntyped(A);
|
|
}
|
|
t(B, "Unknown filter type.");
|
|
O.push(B);
|
|
}
|
|
}
|
|
if (m.flags & 128 && h._allowCodeExecution && h._actionScriptVersion === a.ACTIONSCRIPT2) {
|
|
for (F = m.events, K = [], J = 0;J < F.length;J++) {
|
|
A = F[J];
|
|
if (A.eoe) {
|
|
break;
|
|
}
|
|
var z = function(a, c) {
|
|
return function() {
|
|
var d = c._avm1Context, h = b.AVM2.AS.avm1lib.getAVM1Object(this);
|
|
return d.executeActions(a, h);
|
|
};
|
|
}(new b.AVM1.AVM1ActionsData(A.actionsData, "s" + m.symbolId + "e" + J), h), P = [], D;
|
|
for (D in A) {
|
|
if (0 === D.indexOf("on") && A[D]) {
|
|
var L = D[2].toLowerCase() + D.substring(3);
|
|
"enterFrame" === L && (L = "frameConstructed");
|
|
P.push(L);
|
|
}
|
|
}
|
|
K.push({eventNames:P, handler:z, keyPress:A.keyPress});
|
|
}
|
|
}
|
|
m = new k.AnimationState(p, n, q, E, m.ratio, m.name, m.clipDepth, O, d.display.BlendMode.fromNumber(m.blendMode), !!(m.flags & 1024), m.flags & 512 ? !!m.visibility : !0, K, m.variableName);
|
|
c[n] = m;
|
|
}
|
|
}
|
|
this._soundStarts = f;
|
|
this.commands = null;
|
|
return c;
|
|
};
|
|
return c;
|
|
}();
|
|
k.FrameDelta = q;
|
|
})(b.Timeline || (b.Timeline = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(a, b, d) {
|
|
return{classSimpleName:a, nativeName:b, cls:d};
|
|
}
|
|
function t(c, d, f) {
|
|
Object.defineProperty(c, f, {get:function() {
|
|
a(b.AVM2.Runtime.AVM2.instance, "AVM2 needs to be initialized.");
|
|
var e = b.AVM2.Runtime.AVM2.instance.systemDomain.getClass(d);
|
|
a(e.instanceConstructor);
|
|
Object.defineProperty(c, f, {value:e.instanceConstructor, writable:!1});
|
|
return c[f];
|
|
}, configurable:!0});
|
|
}
|
|
var s = b.AVM2.Runtime.throwError, m = b.AVM2.AS.flash, d = b.AVM2.ABC.Multiname, a = b.Debug.assert;
|
|
jsGlobal.flash = b.AVM2.AS.flash;
|
|
g.linkNatives = function(a) {
|
|
[f("flash.display.DisplayObject", "DisplayObjectClass", m.display.DisplayObject), f("flash.display.InteractiveObject", "InteractiveObjectClass", m.display.InteractiveObject), f("flash.display.DisplayObjectContainer", "ContainerClass", m.display.DisplayObjectContainer), f("flash.display.Sprite", "SpriteClass", m.display.Sprite), f("flash.display.MovieClip", "MovieClipClass", m.display.MovieClip), f("flash.display.Shape", "ShapeClass", m.display.Shape), f("flash.display.Bitmap", "BitmapClass",
|
|
m.display.Bitmap), f("flash.display.BitmapData", "BitmapDataClass", m.display.BitmapData), f("flash.display.Stage", "StageClass", m.display.Stage), f("flash.display.Loader", "LoaderClass", m.display.Loader), f("flash.display.LoaderInfo", "LoaderInfoClass", m.display.LoaderInfo), f("flash.display.Graphics", "GraphicsClass", m.display.Graphics), f("flash.display.SimpleButton", "SimpleButtonClass", m.display.SimpleButton), f("flash.display.MorphShape", "MorphShapeClass", m.display.MorphShape),
|
|
f("flash.display.NativeMenu", "MenuClass", m.display.NativeMenu), f("flash.display.NativeMenuItem", "MenuItemClass", m.display.NativeMenuItem), f("flash.display.FrameLabel", "FrameLabelClass", m.display.FrameLabel), f("flash.display.Scene", "SceneClass", m.display.Scene), f("flash.display.AVM1Movie", "AVM1MovieClass", m.display.AVM1Movie), f("flash.filters.BevelFilter", "BevelFilterClass", m.filters.BevelFilter), f("flash.filters.BitmapFilter", "BitmapFilterClass", m.filters.BitmapFilter),
|
|
f("flash.filters.BlurFilter", "BlurFilterClass", m.filters.BlurFilter), f("flash.filters.ColorMatrixFilter", "ColorMatrixFilterClass", m.filters.ColorMatrixFilter), f("flash.filters.ConvolutionFilter", "ConvolutionFilterClass", m.filters.ConvolutionFilter), f("flash.filters.DisplacementMapFilter", "DisplacementMapFilterClass", m.filters.DisplacementMapFilter), f("flash.filters.DropShadowFilter", "DropShadowFilterClass", m.filters.DropShadowFilter), f("flash.filters.GlowFilter", "GlowFilterClass",
|
|
m.filters.GlowFilter), f("flash.filters.GradientBevelFilter", "GradientBevelFilterClass", m.filters.GradientBevelFilter), f("flash.filters.GradientGlowFilter", "GradientGlowFilterClass", m.filters.GradientGlowFilter), f("flash.geom.Point", "PointClass", m.geom.Point), f("flash.geom.Rectangle", "RectangleClass", m.geom.Rectangle), f("flash.geom.Matrix", "MatrixClass", m.geom.Matrix), f("flash.geom.Matrix3D", "Matrix3DClass", m.geom.Matrix3D), f("flash.geom.Vector3D", "Vector3DClass", m.geom.Vector3D),
|
|
f("flash.geom.Transform", "TransformClass", m.geom.Transform), f("flash.geom.ColorTransform", "ColorTransformClass", m.geom.ColorTransform), f("flash.events.EventDispatcher", "EventDispatcherClass", m.events.EventDispatcher), f("flash.events.Event", "EventClass", m.events.Event), f("flash.events.IOErrorEvent"), f("flash.events.KeyboardEvent", "KeyboardEventClass", m.events.KeyboardEvent), f("flash.events.MouseEvent", "MouseEventClass", m.events.MouseEvent), f("flash.events.GestureEvent",
|
|
"GestureEventClass", m.events.GestureEvent), f("flash.events.TextEvent", "TextEventClass", m.events.TextEvent), f("flash.events.TimerEvent", "TimerEventClass", m.events.TimerEvent), f("flash.events.ProgressEvent", "ProgressEventClass", m.events.ProgressEvent), f("flash.events.NetStatusEvent"), f("flash.events.HTTPStatusEvent"), f("flash.external.ExternalInterface", "ExternalInterfaceClass", m.external.ExternalInterface), f("flash.ui.ContextMenu", "ContextMenuClass", m.ui.ContextMenu), f("flash.ui.ContextMenuItem",
|
|
"ContextMenuItemClass", m.ui.ContextMenuItem), f("flash.ui.Keyboard", "KeyboardClass", m.ui.Keyboard), f("flash.ui.Mouse", "MouseClass", m.ui.Mouse), f("flash.ui.MouseCursorData", "MouseCursorDataClass", m.ui.MouseCursorData), f("flash.ui.GameInput", "GameInputClass", m.ui.GameInput), f("flash.events.GameInputEvent", "GameInputEventClass", m.events.GameInputEvent), f("flash.ui.GameInputControl", "GameInputControlClass", m.ui.GameInputControl), f("flash.ui.GameInputControlType", "GameInputControlTypeClass",
|
|
m.ui.GameInputControlType), f("flash.ui.GameInputDevice", "GameInputDeviceClass", m.ui.GameInputDevice), f("flash.ui.GameInputFinger", "GameInputFingerClass", m.ui.GameInputFinger), f("flash.ui.GameInputHand", "GameInputHandClass", m.ui.GameInputHand), f("flash.ui.Multitouch", "MultitouchClass", m.ui.Multitouch), f("flash.ui.MultitouchInputMode", "MultitouchInputModeClass", m.ui.MultitouchInputMode), f("flash.events.TouchEvent", "TouchEventClass", m.events.TouchEvent), f("flash.text.Font",
|
|
"FontClass", m.text.Font), f("flash.text.TextField", "TextFieldClass", m.text.TextField), f("flash.text.StaticText", "StaticTextClass", m.text.StaticText), f("flash.text.StyleSheet", "StyleSheetClass", m.text.StyleSheet), f("flash.text.TextFormat", "TextFormatClass", m.text.TextFormat), f("flash.text.TextRun", "TextRunClass", m.text.TextRun), f("flash.text.TextLineMetrics"), f("flash.media.Sound", "SoundClass", m.media.Sound), f("flash.media.SoundChannel", "SoundChannelClass", m.media.SoundChannel),
|
|
f("flash.media.SoundMixer", "SoundMixerClass", m.media.SoundMixer), f("flash.media.SoundTransform", "SoundTransformClass", m.media.SoundTransform), f("flash.media.Video", "VideoClass", m.media.Video), f("flash.media.ID3Info", "ID3InfoClass", m.media.ID3Info), f("flash.media.Microphone", "MicrophoneClass", m.media.Microphone), f("flash.net.FileFilter", "FileFilterClass", m.net.FileFilter), f("flash.net.NetConnection", "NetConnectionClass", m.net.NetConnection), f("flash.net.NetStream", "NetStreamClass",
|
|
m.net.NetStream), f("flash.net.Responder", "ResponderClass", m.net.Responder), f("flash.net.URLRequest", "URLRequestClass", m.net.URLRequest), f("flash.net.URLRequestHeader"), f("flash.net.URLStream", "URLStreamClass", m.net.URLStream), f("flash.net.URLLoader", "URLLoaderClass", m.net.URLLoader), f("flash.net.SharedObject", "SharedObjectClass", m.net.SharedObject), f("flash.net.ObjectEncoding", "ObjectEncodingClass", m.net.ObjectEncoding), f("flash.net.LocalConnection", "LocalConnectionClass",
|
|
m.net.LocalConnection), f("flash.net.Socket", "SocketClass", m.net.Socket), f("flash.net.URLVariables", "URLVariablesClass", m.net.URLVariables), f("packageInternal flash.system.FSCommand", "FSCommandClass", m.system.FSCommand), f("flash.system.Capabilities", "CapabilitiesClass", m.system.Capabilities), f("flash.system.Security", "SecurityClass", m.system.Security), f("flash.system.SecurityDomain", "SecurityDomainClass", m.system.SecurityDomain), f("flash.system.ApplicationDomain", "ApplicationDomainClass",
|
|
m.system.ApplicationDomain), f("flash.system.JPEGLoaderContext", "JPEGLoaderContextClass", m.system.JPEGLoaderContext), f("flash.accessibility.Accessibility", "AccessibilityClass", m.accessibility.Accessibility), f("flash.utils.Timer", "TimerClass", m.utils.Timer), f("flash.utils.ByteArray", "ByteArrayClass", m.utils.ByteArray), f("avm1lib.AVM1Utils", "AVM1Utils", b.AVM2.AS.avm1lib.AVM1Utils), f("avm1lib.AVM1Broadcaster"), f("avm1lib.AVM1Key"), f("avm1lib.AVM1Mouse"), f("avm1lib.AVM1MovieClip",
|
|
"AVM1MovieClip", b.AVM2.AS.avm1lib.AVM1MovieClip), f("avm1lib.AVM1BitmapData", "AVM1BitmapData", b.AVM2.AS.avm1lib.AVM1BitmapData), f("avm1lib.AVM1Button", "AVM1Button", b.AVM2.AS.avm1lib.AVM1Button), f("avm1lib.AVM1Sound"), f("avm1lib.AVM1TextField", "AVM1TextField", b.AVM2.AS.avm1lib.AVM1TextField), f("avm1lib.AVM1Stage"), f("avm1lib.AVM1System"), f("avm1lib.AVM1Color"), f("avm1lib.AVM1Transform"), f("avm1lib.AVM1Globals", "AVM1Globals", b.AVM2.AS.avm1lib.AVM1Globals), f("avm1lib.AVM1MovieClipLoader",
|
|
"AVM1MovieClipLoader", b.AVM2.AS.avm1lib.AVM1MovieClipLoader)].forEach(function(a) {
|
|
for (var c = d.fromSimpleName(a.classSimpleName).getOriginalName().split("."), e = b.AVM2.AS, f = 0, k = c.length - 1;f < k;f++) {
|
|
e[c[f]] || (e[c[f]] = {}), e = e[c[f]];
|
|
}
|
|
t(e, a.classSimpleName, c[c.length - 1]);
|
|
g.registerNativeClass(a.nativeName, a.cls);
|
|
});
|
|
g.registerNativeFunction("FlashUtilScript::getDefinitionByName", b.AVM2.AS.Natives.getDefinitionByName);
|
|
g.registerNativeFunction("FlashUtilScript::getTimer", function() {
|
|
return Date.now() - m.display.Loader.runtimeStartTime;
|
|
});
|
|
g.registerNativeFunction("FlashUtilScript::escapeMultiByte", escape);
|
|
g.registerNativeFunction("FlashUtilScript::unescapeMultiByte", unescape);
|
|
g.registerNativeFunction("FlashNetScript::navigateToURL", function(a, c) {
|
|
null !== a && void 0 !== a || s("TypeError", k.Errors.NullPointerError, "request");
|
|
b.AVM2.Runtime.AVM2.instance.systemDomain.getClass("flash.net.URLRequest").isInstanceOf(a) || s("TypeError", k.Errors.CheckTypeFailedError, a, "flash.net.URLRequest");
|
|
var e = a.url;
|
|
if (/^fscommand:/i.test(e)) {
|
|
b.AVM2.Runtime.AVM2.instance.applicationDomain.getProperty(d.fromSimpleName("flash.system.fscommand"), !0, !0).call(null, e.substring(10), c);
|
|
} else {
|
|
var f = c || "_parent";
|
|
window.open(b.FileLoadingService.instance.resolveUrl(e), f);
|
|
}
|
|
});
|
|
g.registerNativeFunction("FlashNetScript::sendToURL", function(a) {
|
|
null !== a && void 0 !== a || s("TypeError", k.Errors.NullPointerError, "request");
|
|
b.AVM2.Runtime.AVM2.instance.systemDomain.getClass("flash.net.URLRequest").isInstanceOf(a) || s("TypeError", k.Errors.CheckTypeFailedError, a, "flash.net.URLRequest");
|
|
var c = b.FileLoadingService.instance.createSession();
|
|
c.onprogress = function() {
|
|
};
|
|
c.open(a);
|
|
});
|
|
g.registerNativeFunction("Toplevel::registerClassAlias", function(a, b) {
|
|
a || s("TypeError", k.Errors.NullPointerError, "aliasName");
|
|
b || s("TypeError", k.Errors.NullPointerError, "classObject");
|
|
k.aliasesCache.classes.set(b, a);
|
|
k.aliasesCache.names[a] = b;
|
|
});
|
|
g.registerNativeFunction("Toplevel::getClassByAlias", function(a) {
|
|
a || s("TypeError", k.Errors.NullPointerError, "aliasName");
|
|
var b = k.aliasesCache.names[a];
|
|
b || s("ReferenceError", k.Errors.ClassNotFoundError, a);
|
|
return b;
|
|
});
|
|
g.registerNativeFunction("isFinite", isFinite);
|
|
};
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
console.timeEnd("Load Flash TS Dependencies");
|
|
console.time("Load AVM1 Dependencies");
|
|
(function(b) {
|
|
(function(b) {
|
|
var g = function() {
|
|
function b(f, g) {
|
|
this.array = f;
|
|
this.position = 0;
|
|
this.end = f.length;
|
|
this.readANSI = 6 > g;
|
|
var k = new ArrayBuffer(4);
|
|
(new Int32Array(k))[0] = 1;
|
|
if (!(new Uint8Array(k))[0]) {
|
|
throw Error("big-endian platform");
|
|
}
|
|
}
|
|
b.prototype.readUI8 = function() {
|
|
return this.array[this.position++];
|
|
};
|
|
b.prototype.readUI16 = function() {
|
|
var b = this.position, f = this.array, f = f[b + 1] << 8 | f[b];
|
|
this.position = b + 2;
|
|
return f;
|
|
};
|
|
b.prototype.readSI16 = function() {
|
|
var b = this.position, f = this.array, f = f[b + 1] << 8 | f[b];
|
|
this.position = b + 2;
|
|
return 32768 > f ? f : f - 65536;
|
|
};
|
|
b.prototype.readInteger = function() {
|
|
var b = this.position, f = this.array, f = f[b] | f[b + 1] << 8 | f[b + 2] << 16 | f[b + 3] << 24;
|
|
this.position = b + 4;
|
|
return f;
|
|
};
|
|
b.prototype.readFloat = function() {
|
|
var b = this.position, f = this.array, g = new ArrayBuffer(4), d = new Uint8Array(g);
|
|
d[0] = f[b];
|
|
d[1] = f[b + 1];
|
|
d[2] = f[b + 2];
|
|
d[3] = f[b + 3];
|
|
this.position = b + 4;
|
|
return(new Float32Array(g))[0];
|
|
};
|
|
b.prototype.readDouble = function() {
|
|
var b = this.position, f = this.array, g = new ArrayBuffer(8), d = new Uint8Array(g);
|
|
d[4] = f[b];
|
|
d[5] = f[b + 1];
|
|
d[6] = f[b + 2];
|
|
d[7] = f[b + 3];
|
|
d[0] = f[b + 4];
|
|
d[1] = f[b + 5];
|
|
d[2] = f[b + 6];
|
|
d[3] = f[b + 7];
|
|
this.position = b + 8;
|
|
return(new Float64Array(g))[0];
|
|
};
|
|
b.prototype.readBoolean = function() {
|
|
return!!this.readUI8();
|
|
};
|
|
b.prototype.readANSIString = function() {
|
|
for (var b = "", f;f = this.readUI8();) {
|
|
b += String.fromCharCode(f);
|
|
}
|
|
return b;
|
|
};
|
|
b.prototype.readUTF8String = function() {
|
|
for (var b = "", f;f = this.readUI8();) {
|
|
if (128 > f) {
|
|
b += String.fromCharCode(f);
|
|
} else {
|
|
if (128 === (f & 192)) {
|
|
throw Error("Invalid UTF8 encoding");
|
|
}
|
|
var g = 192, d = 5;
|
|
do {
|
|
var a = g >> 1 | 128;
|
|
if ((f & a) === g) {
|
|
break;
|
|
}
|
|
g = a;
|
|
--d;
|
|
} while (0 <= d);
|
|
g = f & (1 << d) - 1;
|
|
for (a = 5;a >= d;--a) {
|
|
f = this.readUI8();
|
|
if (128 !== (f & 192)) {
|
|
throw Error("Invalid UTF8 encoding");
|
|
}
|
|
g = g << 6 | f & 63;
|
|
}
|
|
b = 65536 <= g ? b + String.fromCharCode(g - 65536 >> 10 & 1023 | 55296, g & 1023 | 56320) : b + String.fromCharCode(g);
|
|
}
|
|
}
|
|
return b;
|
|
};
|
|
b.prototype.readString = function() {
|
|
return this.readANSI ? this.readANSIString() : this.readUTF8String();
|
|
};
|
|
b.prototype.readBytes = function(b) {
|
|
var f = this.position, g = Math.max(this.end - f, 0);
|
|
g < b && (b = g);
|
|
g = this.array.subarray(f, f + b);
|
|
this.position = f + b;
|
|
return g;
|
|
};
|
|
return b;
|
|
}();
|
|
b.ActionsDataStream = g;
|
|
})(b.AVM1 || (b.AVM1 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
b[b.None = 0] = "None";
|
|
b[b.ActionGotoFrame = 129] = "ActionGotoFrame";
|
|
b[b.ActionGetURL = 131] = "ActionGetURL";
|
|
b[b.ActionNextFrame = 4] = "ActionNextFrame";
|
|
b[b.ActionPreviousFrame = 5] = "ActionPreviousFrame";
|
|
b[b.ActionPlay = 6] = "ActionPlay";
|
|
b[b.ActionStop = 7] = "ActionStop";
|
|
b[b.ActionToggleQuality = 8] = "ActionToggleQuality";
|
|
b[b.ActionStopSounds = 9] = "ActionStopSounds";
|
|
b[b.ActionWaitForFrame = 138] = "ActionWaitForFrame";
|
|
b[b.ActionSetTarget = 139] = "ActionSetTarget";
|
|
b[b.ActionGoToLabel = 140] = "ActionGoToLabel";
|
|
b[b.ActionPush = 150] = "ActionPush";
|
|
b[b.ActionPop = 23] = "ActionPop";
|
|
b[b.ActionAdd = 10] = "ActionAdd";
|
|
b[b.ActionSubtract = 11] = "ActionSubtract";
|
|
b[b.ActionMultiply = 12] = "ActionMultiply";
|
|
b[b.ActionDivide = 13] = "ActionDivide";
|
|
b[b.ActionEquals = 14] = "ActionEquals";
|
|
b[b.ActionLess = 15] = "ActionLess";
|
|
b[b.ActionAnd = 16] = "ActionAnd";
|
|
b[b.ActionOr = 17] = "ActionOr";
|
|
b[b.ActionNot = 18] = "ActionNot";
|
|
b[b.ActionStringEquals = 19] = "ActionStringEquals";
|
|
b[b.ActionStringLength = 20] = "ActionStringLength";
|
|
b[b.ActionMBStringLength = 49] = "ActionMBStringLength";
|
|
b[b.ActionStringAdd = 33] = "ActionStringAdd";
|
|
b[b.ActionStringExtract = 21] = "ActionStringExtract";
|
|
b[b.ActionMBStringExtract = 53] = "ActionMBStringExtract";
|
|
b[b.ActionStringLess = 41] = "ActionStringLess";
|
|
b[b.ActionToInteger = 24] = "ActionToInteger";
|
|
b[b.ActionCharToAscii = 50] = "ActionCharToAscii";
|
|
b[b.ActionMBCharToAscii = 54] = "ActionMBCharToAscii";
|
|
b[b.ActionAsciiToChar = 51] = "ActionAsciiToChar";
|
|
b[b.ActionMBAsciiToChar = 55] = "ActionMBAsciiToChar";
|
|
b[b.ActionJump = 153] = "ActionJump";
|
|
b[b.ActionIf = 157] = "ActionIf";
|
|
b[b.ActionCall = 158] = "ActionCall";
|
|
b[b.ActionGetVariable = 28] = "ActionGetVariable";
|
|
b[b.ActionSetVariable = 29] = "ActionSetVariable";
|
|
b[b.ActionGetURL2 = 154] = "ActionGetURL2";
|
|
b[b.ActionGotoFrame2 = 159] = "ActionGotoFrame2";
|
|
b[b.ActionSetTarget2 = 32] = "ActionSetTarget2";
|
|
b[b.ActionGetProperty = 34] = "ActionGetProperty";
|
|
b[b.ActionSetProperty = 35] = "ActionSetProperty";
|
|
b[b.ActionCloneSprite = 36] = "ActionCloneSprite";
|
|
b[b.ActionRemoveSprite = 37] = "ActionRemoveSprite";
|
|
b[b.ActionStartDrag = 39] = "ActionStartDrag";
|
|
b[b.ActionEndDrag = 40] = "ActionEndDrag";
|
|
b[b.ActionWaitForFrame2 = 141] = "ActionWaitForFrame2";
|
|
b[b.ActionTrace = 38] = "ActionTrace";
|
|
b[b.ActionGetTime = 52] = "ActionGetTime";
|
|
b[b.ActionRandomNumber = 48] = "ActionRandomNumber";
|
|
b[b.ActionCallFunction = 61] = "ActionCallFunction";
|
|
b[b.ActionCallMethod = 82] = "ActionCallMethod";
|
|
b[b.ActionConstantPool = 136] = "ActionConstantPool";
|
|
b[b.ActionDefineFunction = 155] = "ActionDefineFunction";
|
|
b[b.ActionDefineLocal = 60] = "ActionDefineLocal";
|
|
b[b.ActionDefineLocal2 = 65] = "ActionDefineLocal2";
|
|
b[b.ActionDelete = 58] = "ActionDelete";
|
|
b[b.ActionDelete2 = 59] = "ActionDelete2";
|
|
b[b.ActionEnumerate = 70] = "ActionEnumerate";
|
|
b[b.ActionEquals2 = 73] = "ActionEquals2";
|
|
b[b.ActionGetMember = 78] = "ActionGetMember";
|
|
b[b.ActionInitArray = 66] = "ActionInitArray";
|
|
b[b.ActionInitObject = 67] = "ActionInitObject";
|
|
b[b.ActionNewMethod = 83] = "ActionNewMethod";
|
|
b[b.ActionNewObject = 64] = "ActionNewObject";
|
|
b[b.ActionSetMember = 79] = "ActionSetMember";
|
|
b[b.ActionTargetPath = 69] = "ActionTargetPath";
|
|
b[b.ActionWith = 148] = "ActionWith";
|
|
b[b.ActionToNumber = 74] = "ActionToNumber";
|
|
b[b.ActionToString = 75] = "ActionToString";
|
|
b[b.ActionTypeOf = 68] = "ActionTypeOf";
|
|
b[b.ActionAdd2 = 71] = "ActionAdd2";
|
|
b[b.ActionLess2 = 72] = "ActionLess2";
|
|
b[b.ActionModulo = 63] = "ActionModulo";
|
|
b[b.ActionBitAnd = 96] = "ActionBitAnd";
|
|
b[b.ActionBitLShift = 99] = "ActionBitLShift";
|
|
b[b.ActionBitOr = 97] = "ActionBitOr";
|
|
b[b.ActionBitRShift = 100] = "ActionBitRShift";
|
|
b[b.ActionBitURShift = 101] = "ActionBitURShift";
|
|
b[b.ActionBitXor = 98] = "ActionBitXor";
|
|
b[b.ActionDecrement = 81] = "ActionDecrement";
|
|
b[b.ActionIncrement = 80] = "ActionIncrement";
|
|
b[b.ActionPushDuplicate = 76] = "ActionPushDuplicate";
|
|
b[b.ActionReturn = 62] = "ActionReturn";
|
|
b[b.ActionStackSwap = 77] = "ActionStackSwap";
|
|
b[b.ActionStoreRegister = 135] = "ActionStoreRegister";
|
|
b[b.ActionInstanceOf = 84] = "ActionInstanceOf";
|
|
b[b.ActionEnumerate2 = 85] = "ActionEnumerate2";
|
|
b[b.ActionStrictEquals = 102] = "ActionStrictEquals";
|
|
b[b.ActionGreater = 103] = "ActionGreater";
|
|
b[b.ActionStringGreater = 104] = "ActionStringGreater";
|
|
b[b.ActionDefineFunction2 = 142] = "ActionDefineFunction2";
|
|
b[b.ActionExtends = 105] = "ActionExtends";
|
|
b[b.ActionCastOp = 43] = "ActionCastOp";
|
|
b[b.ActionImplementsOp = 44] = "ActionImplementsOp";
|
|
b[b.ActionTry = 143] = "ActionTry";
|
|
b[b.ActionThrow = 42] = "ActionThrow";
|
|
b[b.ActionFSCommand2 = 45] = "ActionFSCommand2";
|
|
b[b.ActionStrictMode = 137] = "ActionStrictMode";
|
|
})(b.ActionCode || (b.ActionCode = {}));
|
|
var g = function() {
|
|
return function(b) {
|
|
this.registerNumber = b;
|
|
};
|
|
}();
|
|
b.ParsedPushRegisterAction = g;
|
|
var f = function() {
|
|
return function(b) {
|
|
this.constantIndex = b;
|
|
};
|
|
}();
|
|
b.ParsedPushConstantAction = f;
|
|
(function(b) {
|
|
b[b.None = 0] = "None";
|
|
b[b.Argument = 1] = "Argument";
|
|
b[b.This = 2] = "This";
|
|
b[b.Arguments = 4] = "Arguments";
|
|
b[b.Super = 8] = "Super";
|
|
b[b.Global = 16] = "Global";
|
|
b[b.Parent = 32] = "Parent";
|
|
b[b.Root = 64] = "Root";
|
|
})(b.ArgumentAssignmentType || (b.ArgumentAssignmentType = {}));
|
|
var t = function() {
|
|
function m(b) {
|
|
this.stream = b;
|
|
}
|
|
Object.defineProperty(m.prototype, "position", {get:function() {
|
|
return this.stream.position;
|
|
}, set:function(b) {
|
|
this.stream.position = b;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(m.prototype, "eof", {get:function() {
|
|
return this.stream.position >= this.stream.end;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(m.prototype, "length", {get:function() {
|
|
return this.stream.end;
|
|
}, enumerable:!0, configurable:!0});
|
|
m.prototype.readNext = function() {
|
|
var d = this.stream, a = d.position, c = d.readUI8(), m = 128 <= c ? d.readUI16() : 0, m = d.position + m, p = null;
|
|
switch(c | 0) {
|
|
case 129:
|
|
var e = d.readUI16(), p = d.readUI8(), q = !1;
|
|
6 !== p && 7 !== p ? d.position-- : (m++, q = 6 === p);
|
|
p = [e, q];
|
|
break;
|
|
case 131:
|
|
e = d.readString();
|
|
p = d.readString();
|
|
p = [e, p];
|
|
break;
|
|
case 138:
|
|
var e = d.readUI16(), l = d.readUI8(), p = [e, l];
|
|
break;
|
|
case 139:
|
|
p = [d.readString()];
|
|
break;
|
|
case 140:
|
|
p = [d.readString()];
|
|
break;
|
|
case 150:
|
|
for (p = [];d.position < m;) {
|
|
e = d.readUI8();
|
|
switch(e | 0) {
|
|
case 0:
|
|
e = d.readString();
|
|
break;
|
|
case 1:
|
|
e = d.readFloat();
|
|
break;
|
|
case 2:
|
|
e = null;
|
|
break;
|
|
case 3:
|
|
e = void 0;
|
|
break;
|
|
case 4:
|
|
e = new g(d.readUI8());
|
|
break;
|
|
case 5:
|
|
e = d.readBoolean();
|
|
break;
|
|
case 6:
|
|
e = d.readDouble();
|
|
break;
|
|
case 7:
|
|
e = d.readInteger();
|
|
break;
|
|
case 8:
|
|
e = new f(d.readUI8());
|
|
break;
|
|
case 9:
|
|
e = new f(d.readUI16());
|
|
break;
|
|
default:
|
|
console.error("Unknown value type: " + e);
|
|
d.position = m;
|
|
continue;
|
|
}
|
|
p.push(e);
|
|
}
|
|
break;
|
|
case 153:
|
|
e = d.readSI16();
|
|
p = [e];
|
|
break;
|
|
case 157:
|
|
e = d.readSI16();
|
|
p = [e];
|
|
break;
|
|
case 154:
|
|
e = d.readUI8();
|
|
p = [e];
|
|
break;
|
|
case 159:
|
|
e = d.readUI8();
|
|
p = [e];
|
|
e & 2 && p.push(d.readUI16());
|
|
break;
|
|
case 141:
|
|
l = d.readUI8();
|
|
p = [l];
|
|
break;
|
|
case 136:
|
|
for (var l = d.readUI16(), e = [], u = 0;u < l;u++) {
|
|
e.push(d.readString());
|
|
}
|
|
p = [e];
|
|
break;
|
|
case 155:
|
|
p = d.readString();
|
|
l = d.readUI16();
|
|
q = [];
|
|
for (u = 0;u < l;u++) {
|
|
q.push(d.readString());
|
|
}
|
|
e = d.readUI16();
|
|
m += e;
|
|
e = new b.AVM1ActionsData(d.readBytes(e), this.dataId + "_f" + d.position);
|
|
p = [e, p, q];
|
|
break;
|
|
case 148:
|
|
e = d.readUI16();
|
|
m += e;
|
|
p = [new b.AVM1ActionsData(d.readBytes(e), this.dataId + "_w" + d.position)];
|
|
break;
|
|
case 135:
|
|
var w = d.readUI8(), p = [w];
|
|
break;
|
|
case 142:
|
|
for (var p = d.readString(), l = d.readUI16(), r = d.readUI8(), e = d.readUI16(), h = [], q = [], u = 0;u < l;u++) {
|
|
var w = d.readUI8(), x = d.readString();
|
|
q.push(x);
|
|
w && (h[w] = {type:1, name:x, index:u});
|
|
}
|
|
l = 1;
|
|
e & 1 && (h[l++] = {type:2});
|
|
e & 4 && (h[l++] = {type:4});
|
|
e & 16 && (h[l++] = {type:8});
|
|
e & 64 && (h[l++] = {type:64});
|
|
e & 128 && (h[l++] = {type:32});
|
|
e & 256 && (h[l++] = {type:16});
|
|
l = 0;
|
|
e & 2 && (l |= 2);
|
|
e & 8 && (l |= 4);
|
|
e & 32 && (l |= 8);
|
|
e = d.readUI16();
|
|
m += e;
|
|
e = new b.AVM1ActionsData(d.readBytes(e), this.dataId + "_f" + d.position);
|
|
p = [e, p, q, r, h, l];
|
|
break;
|
|
case 143:
|
|
e = d.readUI8();
|
|
p = !!(e & 4);
|
|
q = !!(e & 2);
|
|
e = !!(e & 1);
|
|
l = d.readUI16();
|
|
u = d.readUI16();
|
|
h = d.readUI16();
|
|
r = p ? d.readUI8() : d.readString();
|
|
m += l + u + h;
|
|
l = new b.AVM1ActionsData(d.readBytes(l), this.dataId + "_t" + d.position);
|
|
u = new b.AVM1ActionsData(d.readBytes(u), this.dataId + "_c" + d.position);
|
|
h = new b.AVM1ActionsData(d.readBytes(h), this.dataId + "_z" + d.position);
|
|
p = [p, r, l, e, u, q, h];
|
|
break;
|
|
case 137:
|
|
p = [d.readUI8()];
|
|
}
|
|
d.position = m;
|
|
return{position:a, actionCode:c, actionName:s[c], args:p};
|
|
};
|
|
m.prototype.skip = function(b) {
|
|
for (var a = this.stream;0 < b && a.position < a.end;) {
|
|
var c = 128 <= a.readUI8() ? a.readUI16() : 0;
|
|
a.position += c;
|
|
b--;
|
|
}
|
|
};
|
|
return m;
|
|
}();
|
|
b.ActionsDataParser = t;
|
|
var s = {0:"EOA", 4:"ActionNextFrame", 5:"ActionPreviousFrame", 6:"ActionPlay", 7:"ActionStop", 8:"ActionToggleQuality", 9:"ActionStopSounds", 10:"ActionAdd", 11:"ActionSubtract", 12:"ActionMultiply", 13:"ActionDivide", 14:"ActionEquals", 15:"ActionLess", 16:"ActionAnd", 17:"ActionOr", 18:"ActionNot", 19:"ActionStringEquals", 20:"ActionStringLength", 21:"ActionStringExtract", 23:"ActionPop", 24:"ActionToInteger", 28:"ActionGetVariable", 29:"ActionSetVariable", 32:"ActionSetTarget2", 33:"ActionStringAdd",
|
|
34:"ActionGetProperty", 35:"ActionSetProperty", 36:"ActionCloneSprite", 37:"ActionRemoveSprite", 38:"ActionTrace", 39:"ActionStartDrag", 40:"ActionEndDrag", 41:"ActionStringLess", 42:"ActionThrow", 43:"ActionCastOp", 44:"ActionImplementsOp", 45:"ActionFSCommand2", 48:"ActionRandomNumber", 49:"ActionMBStringLength", 50:"ActionCharToAscii", 51:"ActionAsciiToChar", 52:"ActionGetTime", 53:"ActionMBStringExtract", 54:"ActionMBCharToAscii", 55:"ActionMBAsciiToChar", 58:"ActionDelete", 59:"ActionDelete2",
|
|
60:"ActionDefineLocal", 61:"ActionCallFunction", 62:"ActionReturn", 63:"ActionModulo", 64:"ActionNewObject", 65:"ActionDefineLocal2", 66:"ActionInitArray", 67:"ActionInitObject", 68:"ActionTypeOf", 69:"ActionTargetPath", 70:"ActionEnumerate", 71:"ActionAdd2", 72:"ActionLess2", 73:"ActionEquals2", 74:"ActionToNumber", 75:"ActionToString", 76:"ActionPushDuplicate", 77:"ActionStackSwap", 78:"ActionGetMember", 79:"ActionSetMember", 80:"ActionIncrement", 81:"ActionDecrement", 82:"ActionCallMethod",
|
|
83:"ActionNewMethod", 84:"ActionInstanceOf", 85:"ActionEnumerate2", 96:"ActionBitAnd", 97:"ActionBitOr", 98:"ActionBitXor", 99:"ActionBitLShift", 100:"ActionBitRShift", 101:"ActionBitURShift", 102:"ActionStrictEquals", 103:"ActionGreater", 104:"ActionStringGreater", 105:"ActionExtends", 129:"ActionGotoFrame", 131:"ActionGetURL", 135:"ActionStoreRegister", 136:"ActionConstantPool", 137:"ActionStrictMode", 138:"ActionWaitForFrame", 139:"ActionSetTarget", 140:"ActionGoToLabel", 141:"ActionWaitForFrame2",
|
|
142:"ActionDefineFunction2", 143:"ActionTry", 148:"ActionWith", 150:"ActionPush", 153:"ActionJump", 154:"ActionGetURL2", 155:"ActionDefineFunction", 157:"ActionIf", 158:"ActionCall", 159:"ActionGotoFrame2"};
|
|
})(b.AVM1 || (b.AVM1 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
var g = function() {
|
|
function b() {
|
|
}
|
|
b.prototype.analyze = function(b) {
|
|
for (var f = [], g = [0], d = [!0], a = [0];0 < a.length;) {
|
|
var c = a.shift();
|
|
if (!f[c]) {
|
|
for (b.position = c;!b.eof && !f[c];) {
|
|
var k = b.readNext();
|
|
if (0 === k.actionCode) {
|
|
break;
|
|
}
|
|
var p = b.position, e = {action:k, next:p, conditionalJumpTo:-1}, q = 0, l = !1, u = !1;
|
|
switch(k.actionCode) {
|
|
case 138:
|
|
;
|
|
case 141:
|
|
l = !0;
|
|
b.skip(138 === k.actionCode ? k.args[1] : k.args[0]);
|
|
q = b.position;
|
|
b.position = p;
|
|
break;
|
|
case 153:
|
|
l = u = !0;
|
|
q = p + k.args[0];
|
|
break;
|
|
case 157:
|
|
l = !0;
|
|
q = p + k.args[0];
|
|
break;
|
|
case 42:
|
|
;
|
|
case 62:
|
|
;
|
|
case 0:
|
|
l = u = !0, q = b.length;
|
|
}
|
|
if (l) {
|
|
if (0 > q || q > b.length) {
|
|
console.error("jump outside the action block;"), q = b.length;
|
|
}
|
|
u ? e.next = q : e.conditionalJumpTo = q;
|
|
d[q] || (g.push(q), a.push(q), d[q] = !0);
|
|
}
|
|
f[c] = e;
|
|
if (u) {
|
|
break;
|
|
}
|
|
c = p;
|
|
}
|
|
}
|
|
}
|
|
var w = [];
|
|
g.forEach(function(a) {
|
|
if (f[a]) {
|
|
var b = [], c = a;
|
|
do {
|
|
c = f[c], b.push(c), c = c.next;
|
|
} while (!d[c] && f[c]);
|
|
w.push({label:a, items:b, jump:c});
|
|
}
|
|
});
|
|
return{actions:f, blocks:w, dataId:b.dataId};
|
|
};
|
|
return b;
|
|
}();
|
|
b.ActionsDataAnalyzer = g;
|
|
})(b.AVM1 || (b.AVM1 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = b.Debug.assert;
|
|
k.AVM1ActionsData = function() {
|
|
return function(b, f) {
|
|
this.bytes = b;
|
|
this.id = f;
|
|
g(b instanceof Uint8Array);
|
|
};
|
|
}();
|
|
var f = function() {
|
|
function b() {
|
|
this.root = null;
|
|
this.swfVersion = 0;
|
|
this.globals = null;
|
|
}
|
|
b.prototype.flushPendingScripts = function() {
|
|
};
|
|
b.prototype.addAsset = function(b, f, d) {
|
|
};
|
|
b.prototype.registerClass = function(b, f) {
|
|
};
|
|
b.prototype.getAsset = function(b) {
|
|
};
|
|
b.prototype.resolveTarget = function(b) {
|
|
};
|
|
b.prototype.resolveLevel = function(b) {
|
|
};
|
|
b.prototype.addToPendingScripts = function(b) {
|
|
};
|
|
b.prototype.executeActions = function(b, f) {
|
|
};
|
|
b.instance = null;
|
|
return b;
|
|
}();
|
|
k.AVM1Context = f;
|
|
})(b.AVM1 || (b.AVM1 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
__extends = this.__extends || function(b, k) {
|
|
function g() {
|
|
this.constructor = b;
|
|
}
|
|
for (var f in k) {
|
|
k.hasOwnProperty(f) && (b[f] = k[f]);
|
|
}
|
|
g.prototype = k.prototype;
|
|
b.prototype = new g;
|
|
};
|
|
(function(b) {
|
|
(function(k) {
|
|
function g(a) {
|
|
for (var b = 0;b < arguments.length - 1;b++) {
|
|
}
|
|
if (k.avm1ErrorsEnabled.value) {
|
|
try {
|
|
throw Error(a);
|
|
} catch (c) {
|
|
}
|
|
}
|
|
warn.apply(null, arguments);
|
|
}
|
|
function f(a) {
|
|
return "object" === typeof a && a && a instanceof b.AVM2.AS.avm1lib.AVM1MovieClip;
|
|
}
|
|
function t(a) {
|
|
if (null === a) {
|
|
return "null";
|
|
}
|
|
var b = typeof a;
|
|
return "function" === b ? "object" : "object" === b && f(a) ? "movieclip" : b;
|
|
}
|
|
function s(a) {
|
|
return "object" !== t(a) ? a : a.valueOf();
|
|
}
|
|
function m() {
|
|
return k.AVM1Context.instance.swfVersion;
|
|
}
|
|
function d(a) {
|
|
return "object" !== t(a) ? a : a instanceof Date && 6 <= m() ? a.toString() : a.valueOf();
|
|
}
|
|
function a(a) {
|
|
switch(t(a)) {
|
|
default:
|
|
;
|
|
case "undefined":
|
|
;
|
|
case "null":
|
|
return!1;
|
|
case "boolean":
|
|
return a;
|
|
case "number":
|
|
return 0 !== a && !isNaN(a);
|
|
case "string":
|
|
return 0 !== a.length;
|
|
case "movieclip":
|
|
;
|
|
case "object":
|
|
return!0;
|
|
}
|
|
}
|
|
function c(a) {
|
|
a = s(a);
|
|
switch(t(a)) {
|
|
case "undefined":
|
|
;
|
|
case "null":
|
|
return 7 <= m() ? NaN : 0;
|
|
case "boolean":
|
|
return a ? 1 : 0;
|
|
case "number":
|
|
return a;
|
|
case "string":
|
|
return "" === a && 5 > m() ? 0 : +a;
|
|
default:
|
|
return 5 <= m() ? NaN : 0;
|
|
}
|
|
}
|
|
function n(a) {
|
|
a = c(a);
|
|
return isNaN(a) || !isFinite(a) || 0 === a ? 0 : a | 0;
|
|
}
|
|
function p(a) {
|
|
switch(t(a)) {
|
|
case "undefined":
|
|
return 7 <= m() ? "undefined" : "";
|
|
case "null":
|
|
return "null";
|
|
case "boolean":
|
|
return a ? "true" : "false";
|
|
case "number":
|
|
return a.toString();
|
|
case "string":
|
|
return a;
|
|
case "movieclip":
|
|
return a.__targetPath;
|
|
case "object":
|
|
if ("function" === typeof a && a.asGetPublicProperty("toString") === b.AVM2.AS.ASFunction.traitsPrototype.asGetPublicProperty("toString")) {
|
|
return "[type Function]";
|
|
}
|
|
var c = a.asCallPublicProperty("toString", null);
|
|
return "string" === typeof c ? c : "function" === typeof a ? "[type Function]" : "[type Object]";
|
|
}
|
|
}
|
|
function e(a, b) {
|
|
var d = s(a), h = s(b);
|
|
return "string" === typeof d && "string" === typeof h ? d < h : c(d) < c(h);
|
|
}
|
|
function q(a, c) {
|
|
if (b.isNullOrUndefined(a)) {
|
|
return g("AVM1 warning: cannot look up member '" + c + "' on undefined object"), null;
|
|
}
|
|
a = Object(a);
|
|
if (Lb.getPublicQualifiedName(c) in a) {
|
|
return c;
|
|
}
|
|
if (Mb(c)) {
|
|
return null;
|
|
}
|
|
if (f(a) && a.__lookupChild(c)) {
|
|
return c;
|
|
}
|
|
if (6 < m()) {
|
|
return null;
|
|
}
|
|
var d = null, e = c.toLowerCase();
|
|
h(a, function(a) {
|
|
a.toLowerCase() === e && (d = a);
|
|
});
|
|
return d;
|
|
}
|
|
function l(a, c) {
|
|
if (b.isNullOrUndefined(a)) {
|
|
g("AVM1 warning: cannot get property '" + c + "' on undefined object");
|
|
} else {
|
|
return a = Object(a), !a.asHasProperty(void 0, c, 0) && f(a) ? a.__lookupChild(c) : a.asGetPublicProperty(c);
|
|
}
|
|
}
|
|
function u(a) {
|
|
return a && a.asGetPublicProperty("prototype");
|
|
}
|
|
function w(a) {
|
|
return "undefined" !== typeof InternalError && a instanceof InternalError && "too much recursion" === a.message ? new ua("long running script -- AVM1 recursion limit is reached") : a;
|
|
}
|
|
function r(a, c) {
|
|
var d;
|
|
if (a instanceof b.AVM2.AS.ASClass) {
|
|
d = Nb(a, c);
|
|
} else {
|
|
if (!La(a)) {
|
|
return;
|
|
}
|
|
d = Object.create(u(a) || u(Object));
|
|
a.apply(d, c);
|
|
}
|
|
d.constructor = a;
|
|
return d;
|
|
}
|
|
function h(a, b) {
|
|
Ob(a, b, null);
|
|
if (f(a)) {
|
|
for (var c = a._nativeAS3Object, d = 0, h = c._children.length;d < h;d++) {
|
|
var e = c._children[d].name;
|
|
a.asHasProperty(void 0, e, 0) || b.call(null, e);
|
|
}
|
|
}
|
|
}
|
|
function x(a) {
|
|
var b = a.asGetPublicProperty("prototype");
|
|
return "undefined" === typeof Proxy ? (console.error("ES6 proxies are not found"), b) : Proxy.create({getOwnPropertyDescriptor:function(a) {
|
|
return Object.getOwnPropertyDescriptor(b, a);
|
|
}, getPropertyDescriptor:function(a) {
|
|
for (var c = b;c;c = Object.getPrototypeOf(c)) {
|
|
var d = Object.getOwnPropertyDescriptor(c, a);
|
|
if (d) {
|
|
return d;
|
|
}
|
|
}
|
|
}, getOwnPropertyNames:function() {
|
|
return Object.getOwnPropertyNames(b);
|
|
}, getPropertyNames:function() {
|
|
for (var a = Object.getOwnPropertyNames(b), c = Object.getPrototypeOf(b);c;c = Object.getPrototypeOf(c)) {
|
|
a = a.concat(Object.getOwnPropertyNames(c));
|
|
}
|
|
return a;
|
|
}, defineProperty:function(c, d) {
|
|
d && ("function" === typeof d.value && "_setClass" in d.value && d.value._setClass(a), "function" === typeof d.get && "_setClass" in d.get && d.get._setClass(a), "function" === typeof d.set && "_setClass" in d.set && d.set._setClass(a));
|
|
return Object.defineProperty(b, c, d);
|
|
}, delete:function(a) {
|
|
return delete b[a];
|
|
}, fix:function() {
|
|
}});
|
|
}
|
|
function y(a, b, c) {
|
|
if (!b.executionProhibited) {
|
|
var d = Va.get(), h = b.initialScope.create(c), e = k.AVM1Context.instance, f;
|
|
try {
|
|
k.AVM1Context.instance = b, b.isActive = !0, b.abortExecutionAt = k.avm1TimeoutDisabled.value ? Number.MAX_VALUE : Date.now() + 1E3, b.errorsIgnored = 0, b.defaultTarget = c, b.currentTarget = null, d.message("ActionScript Execution Starts"), d.indent(), za(a, h, [], []);
|
|
} catch (g) {
|
|
f = w(g), f instanceof ua && (b.executionProhibited = !0, console.error("Disabling AVM1 execution"));
|
|
}
|
|
b.isActive = !1;
|
|
b.defaultTarget = null;
|
|
b.currentTarget = null;
|
|
d.unindent();
|
|
d.message("ActionScript Execution Stops");
|
|
k.AVM1Context.instance = e;
|
|
if (f) {
|
|
throw f;
|
|
}
|
|
}
|
|
}
|
|
function G(a, b, c) {
|
|
var d = a.split(/[\/.]/g);
|
|
"" === d[d.length - 1] && d.pop();
|
|
if ("" === d[0] || "_level0" === d[0] || "_root" === d[0]) {
|
|
b = c, d.shift();
|
|
}
|
|
for (;0 < d.length;) {
|
|
c = b;
|
|
b = b.__lookupChild(d[0]);
|
|
if (!b) {
|
|
throw Error(d[0] + " (expr " + a + ") is not found in " + c._target);
|
|
}
|
|
d.shift();
|
|
}
|
|
return b;
|
|
}
|
|
function I(a, b) {
|
|
if (a === Array) {
|
|
var c = b;
|
|
1 == b.length && "number" === typeof b[0] && (c = [], c.length = b[0]);
|
|
return c;
|
|
}
|
|
if (a === Boolean || a === Number || a === String || a === Function) {
|
|
return a.apply(null, b);
|
|
}
|
|
if (a === Date) {
|
|
switch(b.length) {
|
|
case 0:
|
|
return new Date;
|
|
case 1:
|
|
return new Date(b[0]);
|
|
default:
|
|
return new Date(b[0], b[1], 2 < b.length ? b[2] : 1, 3 < b.length ? b[3] : 0, 4 < b.length ? b[4] : 0, 5 < b.length ? b[5] : 0, 6 < b.length ? b[6] : 0);
|
|
}
|
|
}
|
|
if (a === Object) {
|
|
return{};
|
|
}
|
|
}
|
|
function C(a, b) {
|
|
if (isNaN(a) || 0 > a || a > b || a != (0 | a)) {
|
|
throw Error("Invalid number of arguments: " + a);
|
|
}
|
|
}
|
|
function E(a) {
|
|
var b = +a.pop();
|
|
C(b, a.length);
|
|
for (var c = [], d = 0;d < b;d++) {
|
|
c.push(a.pop());
|
|
}
|
|
return c;
|
|
}
|
|
function O(a, b) {
|
|
var c = a.context, d = a.global;
|
|
if (b) {
|
|
try {
|
|
var h = G(b, c.currentTarget || c.defaultTarget, d.asGetPublicProperty("_root"));
|
|
c.currentTarget = h;
|
|
} catch (e) {
|
|
throw c.currentTarget = null, e;
|
|
}
|
|
} else {
|
|
c.currentTarget = null;
|
|
}
|
|
}
|
|
function K(a, b, c, d, h, e, f) {
|
|
function g() {
|
|
if (!l.executionProhibited) {
|
|
var a, c = {};
|
|
f & 4 || c.asSetPublicProperty("arguments", arguments);
|
|
f & 2 || c.asSetPublicProperty("this", this);
|
|
f & 8 || c.asSetPublicProperty("super", Ja);
|
|
c.asSetPublicProperty("__class", s);
|
|
a = n.create(c);
|
|
var h, y = [];
|
|
if (e) {
|
|
for (h = 0;h < e.length;h++) {
|
|
var Ca = e[h];
|
|
if (Ca) {
|
|
switch(Ca.type) {
|
|
case 1:
|
|
y[h] = arguments[Ca.index];
|
|
break;
|
|
case 2:
|
|
y[h] = this;
|
|
break;
|
|
case 4:
|
|
y[h] = arguments;
|
|
break;
|
|
case 8:
|
|
y[h] = Ja;
|
|
break;
|
|
case 16:
|
|
y[h] = m;
|
|
break;
|
|
case 32:
|
|
y[h] = r.asGetPublicProperty("_parent");
|
|
break;
|
|
case 64:
|
|
y[h] = m.asGetPublicProperty("_root");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (h = 0;h < arguments.length || h < d.length;h++) {
|
|
u && u[h] || c.asSetPublicProperty(d[h], arguments[h]);
|
|
}
|
|
c = k.AVM1Context.instance;
|
|
h = l.isActive;
|
|
var Ca = l.defaultTarget, w = l.currentTarget, t, G;
|
|
try {
|
|
k.AVM1Context.instance = l;
|
|
h || (l.abortExecutionAt = k.avm1TimeoutDisabled.value ? Number.MAX_VALUE : Date.now() + 1E3, l.errorsIgnored = 0, l.isActive = !0);
|
|
l.defaultTarget = x;
|
|
l.currentTarget = null;
|
|
p.indent();
|
|
if (256 <= ++l.stackDepth) {
|
|
throw new ua("long running script -- AVM1 recursion limit is reached");
|
|
}
|
|
t = za(b, a, q, y);
|
|
} catch (E) {
|
|
G = E;
|
|
}
|
|
l.defaultTarget = Ca;
|
|
l.currentTarget = w;
|
|
l.isActive = h;
|
|
l.stackDepth--;
|
|
p.unindent();
|
|
k.AVM1Context.instance = c;
|
|
if (G) {
|
|
throw G;
|
|
}
|
|
return t;
|
|
}
|
|
}
|
|
var l = a.context, m = a.global, n = a.scopeContainer, r = a.scope, p = a.actionTracer, x = l.defaultTarget, q = a.constantPool, u = null;
|
|
if (e) {
|
|
for (a = 0;a < e.length;a++) {
|
|
(h = e[a]) && 1 === h.type && (u || (u = []), u[e[a].index] = !0);
|
|
}
|
|
}
|
|
var s;
|
|
s = g;
|
|
g._setClass = function(a) {
|
|
s = a;
|
|
};
|
|
g.instanceConstructor = g;
|
|
g.debugName = "avm1 " + (c || "<function>");
|
|
c && (g.name = c);
|
|
return g;
|
|
}
|
|
function F(a, b, c) {
|
|
var d = a.global;
|
|
a = a.context;
|
|
a = a.currentTarget || a.defaultTarget;
|
|
var h, e;
|
|
if (0 <= b.indexOf(":")) {
|
|
e = b.split(":");
|
|
h = G(e[0], a, d.asGetPublicProperty("_root"));
|
|
if (!h) {
|
|
throw Error(e[0] + " is undefined");
|
|
}
|
|
e = e[1];
|
|
} else {
|
|
if (0 <= b.indexOf(".")) {
|
|
for (b = b.split("."), e = b.pop(), h = d, d = 0;d < b.length;d++) {
|
|
if (h = h.asGetPublicProperty(b[d]) || h[b[d]], !h) {
|
|
throw Error(b.slice(0, d + 1) + " is undefined");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!h) {
|
|
return null;
|
|
}
|
|
d = q(h, e);
|
|
return(b = null !== d) || c ? {obj:h, name:d || e, resolved:b} : null;
|
|
}
|
|
function J(a, b) {
|
|
var c = a.scopeContainer, d = a.context, d = d.currentTarget || d.defaultTarget, h = a.scope;
|
|
if (h.asHasProperty(void 0, b, 0)) {
|
|
return h.asGetPublicProperty(b);
|
|
}
|
|
var e = F(a, b, !1);
|
|
if (e) {
|
|
return e.obj.asGetPublicProperty(e.name);
|
|
}
|
|
if (e = q(h, b)) {
|
|
return h.asGetPublicProperty(e);
|
|
}
|
|
for (;c;c = c.next) {
|
|
if (e = q(c.scope, b), null !== e) {
|
|
return c.scope.asGetPublicProperty(e);
|
|
}
|
|
}
|
|
if (d.asHasProperty(void 0, b, 0)) {
|
|
return d.asGetPublicProperty(b);
|
|
}
|
|
if ("this" === b) {
|
|
return d;
|
|
}
|
|
if (c = f(d) && d.__lookupChild(b)) {
|
|
return c;
|
|
}
|
|
}
|
|
function A(a, b) {
|
|
var c = a.global, d = b[0];
|
|
b[1] ? c.gotoAndPlay(d + 1) : c.gotoAndStop(d + 1);
|
|
}
|
|
function B(a, b) {
|
|
a.global.getURL(b[0], b[1]);
|
|
}
|
|
function z(a) {
|
|
a.global.nextFrame();
|
|
}
|
|
function P(a) {
|
|
a.global.prevFrame();
|
|
}
|
|
function D(a) {
|
|
a.global.play();
|
|
}
|
|
function L(a) {
|
|
a.global.stop();
|
|
}
|
|
function M(a) {
|
|
a.global.toggleHighQuality();
|
|
}
|
|
function V(a) {
|
|
a.global.stopAllSounds();
|
|
}
|
|
function Q(a, b) {
|
|
return!a.global.ifFrameLoaded(b[0]);
|
|
}
|
|
function U(a, b) {
|
|
O(a, b[0]);
|
|
}
|
|
function S(a, b) {
|
|
a.global.gotoLabel(b[0]);
|
|
}
|
|
function aa(a, b) {
|
|
var c = a.registers, d = a.constantPool, h = a.stack;
|
|
b.forEach(function(a) {
|
|
a instanceof k.ParsedPushConstantAction ? h.push(d[a.constantIndex]) : a instanceof k.ParsedPushRegisterAction ? h.push(c[a.registerNumber]) : h.push(a);
|
|
});
|
|
}
|
|
function $(a) {
|
|
a.stack.pop();
|
|
}
|
|
function ea(a) {
|
|
a = a.stack;
|
|
var b = c(a.pop()), d = c(a.pop());
|
|
a.push(b + d);
|
|
}
|
|
function Z(a) {
|
|
a = a.stack;
|
|
var b = c(a.pop()), d = c(a.pop());
|
|
a.push(d - b);
|
|
}
|
|
function v(a) {
|
|
a = a.stack;
|
|
var b = c(a.pop()), d = c(a.pop());
|
|
a.push(b * d);
|
|
}
|
|
function X(a) {
|
|
var b = a.stack;
|
|
a = a.isSwfVersion5;
|
|
var d = c(b.pop()), d = c(b.pop()) / d;
|
|
b.push(a ? d : isFinite(d) ? d : "#ERROR#");
|
|
}
|
|
function ba(a) {
|
|
var b = a.stack;
|
|
a = a.isSwfVersion5;
|
|
var d = c(b.pop()), h = c(b.pop()), d = d == h;
|
|
b.push(a ? d : d ? 1 : 0);
|
|
}
|
|
function R(a) {
|
|
var b = a.stack;
|
|
a = a.isSwfVersion5;
|
|
var d = c(b.pop()), d = c(b.pop()) < d;
|
|
b.push(a ? d : d ? 1 : 0);
|
|
}
|
|
function H(b) {
|
|
var c = b.stack;
|
|
b = b.isSwfVersion5;
|
|
var d = a(c.pop()), h = a(c.pop()), d = d && h;
|
|
c.push(b ? d : d ? 1 : 0);
|
|
}
|
|
function Y(b) {
|
|
var c = b.stack;
|
|
b = b.isSwfVersion5;
|
|
var d = a(c.pop()), h = a(c.pop()), d = d || h;
|
|
c.push(b ? d : d ? 1 : 0);
|
|
}
|
|
function ga(b) {
|
|
var c = b.stack;
|
|
b = b.isSwfVersion5;
|
|
var d = !a(c.pop());
|
|
c.push(b ? d : d ? 1 : 0);
|
|
}
|
|
function ca(a) {
|
|
var b = a.stack;
|
|
a = a.isSwfVersion5;
|
|
var c = p(b.pop()), d = p(b.pop()), c = c == d;
|
|
b.push(a ? c : c ? 1 : 0);
|
|
}
|
|
function ka(a) {
|
|
var b = a.stack;
|
|
a = a.global;
|
|
var c = p(b.pop());
|
|
b.push(a.length(c));
|
|
}
|
|
function W(a) {
|
|
var b = a.stack;
|
|
a = a.global;
|
|
var c = p(b.pop());
|
|
b.push(a.length(c));
|
|
}
|
|
function ha(a) {
|
|
a = a.stack;
|
|
var b = p(a.pop()), c = p(a.pop());
|
|
a.push(c + b);
|
|
}
|
|
function da(a) {
|
|
var b = a.stack;
|
|
a = a.global;
|
|
var c = b.pop(), d = b.pop(), h = p(b.pop());
|
|
b.push(a.substring(h, d, c));
|
|
}
|
|
function ja(a) {
|
|
var b = a.stack;
|
|
a = a.global;
|
|
var c = b.pop(), d = b.pop(), h = p(b.pop());
|
|
b.push(a.mbsubstring(h, d, c));
|
|
}
|
|
function N(a) {
|
|
var b = a.stack;
|
|
a = a.isSwfVersion5;
|
|
var c = p(b.pop()), c = p(b.pop()) < c;
|
|
b.push(a ? c : c ? 1 : 0);
|
|
}
|
|
function ma(a) {
|
|
var b = a.stack;
|
|
b.push(a.global.int(b.pop()));
|
|
}
|
|
function T(a) {
|
|
var b = a.stack;
|
|
a = a.global;
|
|
var c = b.pop();
|
|
a = a.ord(c);
|
|
b.push(a);
|
|
}
|
|
function oa(a) {
|
|
var b = a.stack;
|
|
a = a.global;
|
|
var c = b.pop();
|
|
a = a.mbord(c);
|
|
b.push(a);
|
|
}
|
|
function pa(a) {
|
|
var b = a.stack;
|
|
a = a.global;
|
|
var c = +b.pop();
|
|
a = a.chr(c);
|
|
b.push(a);
|
|
}
|
|
function na(a) {
|
|
var b = a.stack;
|
|
a = a.global;
|
|
var c = +b.pop();
|
|
a = a.mbchr(c);
|
|
b.push(a);
|
|
}
|
|
function fa(a, b) {
|
|
}
|
|
function sa(a, b) {
|
|
return!!a.stack.pop();
|
|
}
|
|
function xa(a) {
|
|
var b = a.global;
|
|
a = a.stack.pop();
|
|
b.call(a);
|
|
}
|
|
function la(a) {
|
|
var b = a.stack, c = "" + b.pop(), d = b.length;
|
|
b.push(void 0);
|
|
b[d] = J(a, c);
|
|
}
|
|
function qa(a) {
|
|
var b = a.stack, c = b.pop();
|
|
a: {
|
|
var b = "" + b.pop(), d = a.scopeContainer, h = a.context, e = h.currentTarget || h.defaultTarget, f = a.scope;
|
|
if (h.currentTarget) {
|
|
e.asSetPublicProperty(b, c);
|
|
} else {
|
|
if (f.asHasProperty(void 0, b, 0)) {
|
|
f.asSetPublicProperty(b, c);
|
|
} else {
|
|
if (a = F(a, b, !0)) {
|
|
a.obj.asSetPublicProperty(a.name, c);
|
|
} else {
|
|
for (a = d;a.next;a = a.next) {
|
|
if (d = q(a.scope, b), null !== d) {
|
|
a.scope.asSetPublicProperty(d, c);
|
|
break a;
|
|
}
|
|
}
|
|
e.asSetPublicProperty(b, c);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function ia(a, b) {
|
|
var c = a.global, d = a.stack, h = b[0], e = d.pop(), d = d.pop(), f;
|
|
h & 1 ? f = "GET" : h & 2 && (f = "POST");
|
|
h & 64 ? h & 128 ? c.loadVariables(d, e, f) : c.loadMovie(d, e, f) : c.getURL(d, e, f);
|
|
}
|
|
function wa(a, b) {
|
|
var c = a.global, d = b[0], h = [a.stack.pop()];
|
|
d & 2 && h.push(b[1]);
|
|
(d & 1 ? c.gotoAndPlay : c.gotoAndStop).apply(c, h);
|
|
}
|
|
function Ia(a) {
|
|
var b = a.stack.pop();
|
|
O(a, b);
|
|
}
|
|
function va(a) {
|
|
var b = a.global;
|
|
a = a.stack;
|
|
var c = a.pop(), d = a.pop(), h = a.length;
|
|
a.push(void 0);
|
|
a[h] = b.getAVM1Property(d, c);
|
|
}
|
|
function ya(a) {
|
|
var b = a.global, c = a.stack;
|
|
a = c.pop();
|
|
var d = c.pop(), c = c.pop();
|
|
b.setAVM1Property(c, d, a);
|
|
}
|
|
function Ga(a) {
|
|
var b = a.global, c = a.stack;
|
|
a = c.pop();
|
|
var d = c.pop(), c = c.pop();
|
|
b.duplicateMovieClip(c, d, a);
|
|
}
|
|
function Ha(a) {
|
|
var b = a.global;
|
|
a = a.stack.pop();
|
|
b.removeMovieClip(a);
|
|
}
|
|
function Aa(a) {
|
|
var b = a.global, c = a.stack;
|
|
a = c.pop();
|
|
var d = c.pop(), c = c.pop() ? {y2:c.pop(), x2:c.pop(), y1:c.pop(), x1:c.pop()} : null;
|
|
a = [a, d];
|
|
c && (a = a.concat(c.x1, c.y1, c.x2, c.y2));
|
|
b.startDrag.apply(b, a);
|
|
}
|
|
function ra(a) {
|
|
a.global.stopDrag();
|
|
}
|
|
function ta(a, b) {
|
|
var c = a.global, d = a.stack.pop();
|
|
return!c.ifFrameLoaded(d);
|
|
}
|
|
function Ba(a) {
|
|
var b = a.global;
|
|
a = a.stack.pop();
|
|
b.trace(a);
|
|
}
|
|
function Ma(a) {
|
|
a.stack.push(a.global.getTimer());
|
|
}
|
|
function Na(a) {
|
|
var b = a.stack;
|
|
b.push(a.global.random(b.pop()));
|
|
}
|
|
function Oa(a) {
|
|
var b = a.stack, c = a.scope, d = b.pop(), h = E(b), e = b.length;
|
|
b.push(void 0);
|
|
a = J(a, d);
|
|
a instanceof Function ? (Da(b.length === e + 1), b[e] = a.apply(c, h)) : g("AVM1 warning: function '" + d + (a ? "' is not callable" : "' is undefined"));
|
|
}
|
|
function Pa(a) {
|
|
var c = a.stack, d = c.pop(), h = c.pop(), e = E(c), f, k = c.length;
|
|
c.push(void 0);
|
|
b.isNullOrUndefined(h) ? g("AVM1 warning: method '" + d + "' can't be called on undefined object") : b.isNullOrUndefined(d) || "" === d ? (h === Ja ? (h = J(a, "__class").__super, f = J(a, "this")) : f = h, La(h) ? c[k] = h.apply(f, e) : g("AVM1 warning: obj '" + h + (h ? "' is not callable" : "' is undefined")), Da(c.length === k + 1)) : (h === Ja ? (f = u(J(a, "__class").__super), h = J(a, "this")) : f = h, a = q(f, d), f = f.asGetPublicProperty(a), La(f) ? (Da(c.length === k + 1), c[k] =
|
|
f.apply(h, e)) : g("AVM1 warning: method '" + d + "' on object", h, b.isNullOrUndefined(f) ? "is undefined" : "is not callable"));
|
|
}
|
|
function Qa(a, b) {
|
|
a.constantPool = b[0];
|
|
}
|
|
function Ra(a, b) {
|
|
var c = a.stack, d = a.scope, h = b[1], e = K(a, b[0], h, b[2], 0, null, 0);
|
|
h ? d.asSetPublicProperty(h, e) : c.push(e);
|
|
}
|
|
function Sa(a) {
|
|
var b = a.stack;
|
|
a = a.scope;
|
|
var c = b.pop(), b = b.pop();
|
|
a.asSetPublicProperty(b, c);
|
|
}
|
|
function Ta(a) {
|
|
var b = a.scope;
|
|
a = a.stack.pop();
|
|
b.asSetPublicProperty(a, void 0);
|
|
}
|
|
function Ua(a) {
|
|
a = a.stack;
|
|
var b = a.pop(), c = a.pop();
|
|
c.asSetPublicProperty(b, void 0);
|
|
a.push(c.asDeleteProperty(void 0, b, 0));
|
|
}
|
|
function Wa(a) {
|
|
var b = a.stack, c;
|
|
a: {
|
|
c = b.pop();
|
|
for (a = a.scopeContainer;a;a = a.next) {
|
|
if (a.scope.asHasProperty(void 0, c, 0)) {
|
|
a.scope.asSetPublicProperty(c, void 0);
|
|
c = a.scope.asDeleteProperty(void 0, c, 0);
|
|
break a;
|
|
}
|
|
}
|
|
c = !1;
|
|
}
|
|
b.push(c);
|
|
}
|
|
function Xa(a) {
|
|
var c = a.stack, d = c.pop();
|
|
c.push(null);
|
|
a = J(a, d);
|
|
b.isNullOrUndefined(a) || h(a, function(a) {
|
|
c.push(a);
|
|
});
|
|
}
|
|
function Ya(a) {
|
|
a = a.stack;
|
|
var b = a.pop(), c = a.pop();
|
|
a.push(b == c);
|
|
}
|
|
function Za(a) {
|
|
a = a.stack;
|
|
var b = a.pop(), c = a.pop();
|
|
"prototype" === b ? a.push(x(c)) : (b = q(c, b), a.push(null === b ? void 0 : l(c, b)));
|
|
}
|
|
function $a(a) {
|
|
a = a.stack;
|
|
var b = E(a);
|
|
a.push(b);
|
|
}
|
|
function ab(a) {
|
|
a = a.stack;
|
|
var b = +a.pop();
|
|
C(b, a.length >> 1);
|
|
for (var c = {}, d = 0;d < b;d++) {
|
|
var h = a.pop(), e = a.pop();
|
|
c.asSetPublicProperty(e, h);
|
|
}
|
|
a.push(c);
|
|
}
|
|
function bb(a) {
|
|
a = a.stack;
|
|
var c = a.pop(), d = a.pop(), h = E(a), e = a.length;
|
|
a.push(void 0);
|
|
if (b.isNullOrUndefined(d)) {
|
|
g("AVM1 warning: method '" + c + "' can't be constructed on undefined object");
|
|
} else {
|
|
var f;
|
|
b.isNullOrUndefined(c) || "" === c ? f = d : (f = q(d, c), f = d.asGetPublicProperty(f));
|
|
h = r(f, h);
|
|
void 0 === h && g("AVM1 warning: method '" + c + "' on object", d, "is not constructible");
|
|
a[e] = h;
|
|
Da(a.length === e + 1);
|
|
}
|
|
}
|
|
function cb(a) {
|
|
var b = a.stack, c = b.pop(), d = E(b), h = b.length;
|
|
b.push(void 0);
|
|
a = J(a, c);
|
|
var e = I(a, d);
|
|
void 0 === e && (e = r(a, d), void 0 === e && g("AVM1 warning: object '" + c + (a ? "' is not constructible" : "' is undefined")));
|
|
Da(b.length === h + 1);
|
|
b[h] = e;
|
|
}
|
|
function db(a) {
|
|
var c = a.stack;
|
|
a = c.pop();
|
|
var d = c.pop(), c = c.pop();
|
|
b.isNullOrUndefined(c) ? g("AVM1 warning: cannot set member '" + d + "' on undefined object") : c.asSetPublicProperty(d, a);
|
|
}
|
|
function eb(a) {
|
|
a = a.stack;
|
|
var b = a.pop();
|
|
a.push("movieclip" === t(b) ? b._target : void 0);
|
|
}
|
|
function fb(a, b) {
|
|
var c = b[0], d = a.stack.pop(), h = a.constantPool, e = a.registers, d = a.scopeContainer.create(Object(d));
|
|
za(c, d, h, e);
|
|
}
|
|
function gb(a) {
|
|
a = a.stack;
|
|
a.push(c(a.pop()));
|
|
}
|
|
function hb(a) {
|
|
a = a.stack;
|
|
a.push(p(a.pop()));
|
|
}
|
|
function ib(a) {
|
|
a = a.stack;
|
|
var b = a.pop();
|
|
a.push(t(b));
|
|
}
|
|
function jb(a) {
|
|
a = a.stack;
|
|
var b = d(a.pop()), h = d(a.pop());
|
|
"string" === typeof b || "string" === typeof h ? a.push(p(h) + p(b)) : a.push(c(h) + c(b));
|
|
}
|
|
function kb(a) {
|
|
a = a.stack;
|
|
var b = a.pop(), c = a.pop();
|
|
a.push(e(c, b));
|
|
}
|
|
function lb(a) {
|
|
a = a.stack;
|
|
var b = c(a.pop()), d = c(a.pop());
|
|
a.push(d % b);
|
|
}
|
|
function mb(a) {
|
|
a = a.stack;
|
|
var b = n(a.pop()), c = n(a.pop());
|
|
a.push(c & b);
|
|
}
|
|
function nb(a) {
|
|
a = a.stack;
|
|
var b = n(a.pop()), c = n(a.pop());
|
|
a.push(c << b);
|
|
}
|
|
function ob(a) {
|
|
a = a.stack;
|
|
var b = n(a.pop()), c = n(a.pop());
|
|
a.push(c | b);
|
|
}
|
|
function pb(a) {
|
|
a = a.stack;
|
|
var b = n(a.pop()), c = n(a.pop());
|
|
a.push(c >> b);
|
|
}
|
|
function qb(a) {
|
|
a = a.stack;
|
|
var b = n(a.pop()), c = n(a.pop());
|
|
a.push(c >>> b);
|
|
}
|
|
function rb(a) {
|
|
a = a.stack;
|
|
var b = n(a.pop()), c = n(a.pop());
|
|
a.push(c ^ b);
|
|
}
|
|
function sb(a) {
|
|
a = a.stack;
|
|
var b = c(a.pop());
|
|
b--;
|
|
a.push(b);
|
|
}
|
|
function tb(a) {
|
|
a = a.stack;
|
|
var b = c(a.pop());
|
|
b++;
|
|
a.push(b);
|
|
}
|
|
function ub(a) {
|
|
a = a.stack;
|
|
a.push(a[a.length - 1]);
|
|
}
|
|
function vb(a) {
|
|
a.isEndOfActions = !0;
|
|
}
|
|
function wb(a) {
|
|
a = a.stack;
|
|
a.push(a.pop(), a.pop());
|
|
}
|
|
function xb(a, b) {
|
|
var c = a.stack;
|
|
a.registers[b[0]] = c[c.length - 1];
|
|
}
|
|
function yb(a) {
|
|
a = a.stack;
|
|
var b = a.pop(), c = a.pop();
|
|
a.push(c instanceof b ? !0 : !1);
|
|
}
|
|
function zb(a) {
|
|
var c = a.stack;
|
|
a = c.pop();
|
|
c.push(null);
|
|
b.isNullOrUndefined(a) ? g("AVM1 warning: cannot iterate over undefined object") : h(a, function(a) {
|
|
c.push(a);
|
|
});
|
|
}
|
|
function Ab(a) {
|
|
a = a.stack;
|
|
var b = a.pop(), c = a.pop();
|
|
a.push(c === b);
|
|
}
|
|
function Bb(a) {
|
|
a = a.stack;
|
|
var b = a.pop(), c = a.pop();
|
|
a.push(e(b, c));
|
|
}
|
|
function Cb(a) {
|
|
var b = a.stack;
|
|
a = a.isSwfVersion5;
|
|
var c = p(b.pop()), c = p(b.pop()) > c;
|
|
b.push(a ? c : c ? 1 : 0);
|
|
}
|
|
function Db(a, b) {
|
|
var c = a.stack, d = a.scope, h = b[1], e = K(a, b[0], h, b[2], b[3], b[4], b[5]);
|
|
h ? d.asSetPublicProperty(h, e) : c.push(e);
|
|
}
|
|
function Eb(a) {
|
|
var b = a.stack;
|
|
a = b.pop();
|
|
var b = b.pop(), c = Object.create(a.traitsPrototype || u(a), {constructor:{value:b, enumerable:!1}});
|
|
b.__super = a;
|
|
b.prototype = c;
|
|
}
|
|
function Fb(a) {
|
|
a = a.stack;
|
|
var b = a.pop(), c = a.pop();
|
|
a.push(b instanceof c ? b : null);
|
|
}
|
|
function Gb(a) {
|
|
a = a.stack;
|
|
var b = a.pop(), c = +a.pop();
|
|
C(c, a.length);
|
|
for (var d = [], h = 0;h < c;h++) {
|
|
d.push(a.pop());
|
|
}
|
|
b._as2Interfaces = d;
|
|
}
|
|
function Hb(a, b) {
|
|
var c = b[5], d = b[3], h = b[1], e = b[2], f = b[4], g = b[6], k = a.context, l = a.scopeContainer, m = a.scope, n = a.constantPool, r = a.registers, p = k.isTryCatchListening, x;
|
|
try {
|
|
k.isTryCatchListening = !0, za(e, l, n, r);
|
|
} catch (q) {
|
|
k.isTryCatchListening = p, d && q instanceof Ka ? ("string" === typeof h ? m.asSetPublicProperty(h, q.error) : r[h] = q.error, za(f, l, n, r)) : x = q;
|
|
}
|
|
k.isTryCatchListening = p;
|
|
c && za(g, l, n, r);
|
|
if (x) {
|
|
throw x;
|
|
}
|
|
}
|
|
function Ib(a) {
|
|
a = a.stack.pop();
|
|
throw new Ka(a);
|
|
}
|
|
function Jb(a) {
|
|
var b = a.stack, c = a.global, d = E(b);
|
|
a = b.length;
|
|
b.push(void 0);
|
|
c = c.fscommand.apply(null, d);
|
|
b[a] = c;
|
|
}
|
|
function Pb(a, b) {
|
|
}
|
|
function Qb(a) {
|
|
return function(c, d) {
|
|
var h;
|
|
try {
|
|
a(c, d), c.recoveringFromError = !1;
|
|
} catch (e) {
|
|
h = c.context;
|
|
e = w(e);
|
|
if (e instanceof ua) {
|
|
throw e;
|
|
}
|
|
if (e instanceof Ka) {
|
|
throw e;
|
|
}
|
|
Kb.instance.reportTelemetry({topic:"error", error:1});
|
|
if (!c.recoveringFromError) {
|
|
if (1E3 <= h.errorsIgnored++) {
|
|
throw new ua("long running script -- AVM1 errors limit is reached");
|
|
}
|
|
console.log(typeof e);
|
|
console.log(Object.getPrototypeOf(e));
|
|
console.log(Object.getPrototypeOf(Object.getPrototypeOf(e)));
|
|
console.error("AVM1 error: " + e);
|
|
b.AVM2.Runtime.AVM2.instance.exceptions.push({source:"avm1", message:e.message, stack:e.stack});
|
|
c.recoveringFromError = !0;
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function Rb() {
|
|
var a;
|
|
a = k.avm1ErrorsEnabled.value ? function(a) {
|
|
return a;
|
|
} : Qb;
|
|
return{ActionGotoFrame:a(A), ActionGetURL:a(B), ActionNextFrame:a(z), ActionPreviousFrame:a(P), ActionPlay:a(D), ActionStop:a(L), ActionToggleQuality:a(M), ActionStopSounds:a(V), ActionWaitForFrame:a(Q), ActionSetTarget:a(U), ActionGoToLabel:a(S), ActionPush:a(aa), ActionPop:a($), ActionAdd:a(ea), ActionSubtract:a(Z), ActionMultiply:a(v), ActionDivide:a(X), ActionEquals:a(ba), ActionLess:a(R), ActionAnd:a(H), ActionOr:a(Y), ActionNot:a(ga), ActionStringEquals:a(ca), ActionStringLength:a(ka),
|
|
ActionMBStringLength:a(W), ActionStringAdd:a(ha), ActionStringExtract:a(da), ActionMBStringExtract:a(ja), ActionStringLess:a(N), ActionToInteger:a(ma), ActionCharToAscii:a(T), ActionMBCharToAscii:a(oa), ActionAsciiToChar:a(pa), ActionMBAsciiToChar:a(na), ActionJump:a(fa), ActionIf:a(sa), ActionCall:a(xa), ActionGetVariable:a(la), ActionSetVariable:a(qa), ActionGetURL2:a(ia), ActionGotoFrame2:a(wa), ActionSetTarget2:a(Ia), ActionGetProperty:a(va), ActionSetProperty:a(ya), ActionCloneSprite:a(Ga),
|
|
ActionRemoveSprite:a(Ha), ActionStartDrag:a(Aa), ActionEndDrag:a(ra), ActionWaitForFrame2:a(ta), ActionTrace:a(Ba), ActionGetTime:a(Ma), ActionRandomNumber:a(Na), ActionCallFunction:a(Oa), ActionCallMethod:a(Pa), ActionConstantPool:a(Qa), ActionDefineFunction:a(Ra), ActionDefineLocal:a(Sa), ActionDefineLocal2:a(Ta), ActionDelete:a(Ua), ActionDelete2:a(Wa), ActionEnumerate:a(Xa), ActionEquals2:a(Ya), ActionGetMember:a(Za), ActionInitArray:a($a), ActionInitObject:a(ab), ActionNewMethod:a(bb),
|
|
ActionNewObject:a(cb), ActionSetMember:a(db), ActionTargetPath:a(eb), ActionWith:a(fb), ActionToNumber:a(gb), ActionToString:a(hb), ActionTypeOf:a(ib), ActionAdd2:a(jb), ActionLess2:a(kb), ActionModulo:a(lb), ActionBitAnd:a(mb), ActionBitLShift:a(nb), ActionBitOr:a(ob), ActionBitRShift:a(pb), ActionBitURShift:a(qb), ActionBitXor:a(rb), ActionDecrement:a(sb), ActionIncrement:a(tb), ActionPushDuplicate:a(ub), ActionReturn:a(vb), ActionStackSwap:a(wb), ActionStoreRegister:a(xb), ActionInstanceOf:a(yb),
|
|
ActionEnumerate2:a(zb), ActionStrictEquals:a(Ab), ActionGreater:a(Bb), ActionStringGreater:a(Cb), ActionDefineFunction2:a(Db), ActionExtends:a(Eb), ActionCastOp:a(Fb), ActionImplementsOp:a(Gb), ActionTry:a(Hb), ActionThrow:a(Ib), ActionFSCommand2:a(Jb), ActionStrictMode:a(Pb)};
|
|
}
|
|
function za(a, c, d, h) {
|
|
var e = k.AVM1Context.instance;
|
|
if (!a.ir) {
|
|
var f = new k.ActionsDataStream(a.bytes, e.swfVersion), f = new k.ActionsDataParser(f);
|
|
f.dataId = a.id;
|
|
var g = new k.ActionsDataAnalyzer;
|
|
a.ir = g.analyze(f);
|
|
if (k.avm1CompilerEnabled.value) {
|
|
try {
|
|
var l = new Sb;
|
|
a.ir.compiled = l.generate(a.ir);
|
|
} catch (m) {
|
|
console.error("Unable to compile AVM1 function: " + m);
|
|
}
|
|
}
|
|
}
|
|
a = a.ir;
|
|
var f = a.compiled, l = [], n = 5 <= e.swfVersion, r = Va.get(), g = c.scope;
|
|
c = {context:e, global:e.globals, scopeContainer:c, scope:g, actionTracer:r, constantPool:d, registers:h, stack:l, isSwfVersion5:n, recoveringFromError:!1, isEndOfActions:!1};
|
|
g._nativeAS3Object && g._nativeAS3Object._deferScriptExecution && (e.deferScriptExecution = !0);
|
|
if (f) {
|
|
return f(c);
|
|
}
|
|
d = 0;
|
|
e = e.abortExecutionAt;
|
|
if (k.avm1DebuggerEnabled.value && (k.Debugger.pause || k.Debugger.breakpoints[a.dataId])) {
|
|
debugger;
|
|
}
|
|
for (h = a.actions[0];h && !c.isEndOfActions;) {
|
|
if (0 === d++ % 1E3 && Date.now() >= e) {
|
|
throw new ua("long running script -- AVM1 instruction hang timeout");
|
|
}
|
|
f = c;
|
|
g = n = void 0;
|
|
try {
|
|
var n = f, p = h.action, x = p.actionCode, q = p.args;
|
|
n.actionTracer.print(p, n.stack);
|
|
r = !1;
|
|
switch(x | 0) {
|
|
case 129:
|
|
A(n, q);
|
|
break;
|
|
case 131:
|
|
B(n, q);
|
|
break;
|
|
case 4:
|
|
z(n);
|
|
break;
|
|
case 5:
|
|
P(n);
|
|
break;
|
|
case 6:
|
|
D(n);
|
|
break;
|
|
case 7:
|
|
L(n);
|
|
break;
|
|
case 8:
|
|
M(n);
|
|
break;
|
|
case 9:
|
|
V(n);
|
|
break;
|
|
case 138:
|
|
r = Q(n, q);
|
|
break;
|
|
case 139:
|
|
U(n, q);
|
|
break;
|
|
case 140:
|
|
S(n, q);
|
|
break;
|
|
case 150:
|
|
aa(n, q);
|
|
break;
|
|
case 23:
|
|
$(n);
|
|
break;
|
|
case 10:
|
|
ea(n);
|
|
break;
|
|
case 11:
|
|
Z(n);
|
|
break;
|
|
case 12:
|
|
v(n);
|
|
break;
|
|
case 13:
|
|
X(n);
|
|
break;
|
|
case 14:
|
|
ba(n);
|
|
break;
|
|
case 15:
|
|
R(n);
|
|
break;
|
|
case 16:
|
|
H(n);
|
|
break;
|
|
case 17:
|
|
Y(n);
|
|
break;
|
|
case 18:
|
|
ga(n);
|
|
break;
|
|
case 19:
|
|
ca(n);
|
|
break;
|
|
case 20:
|
|
ka(n);
|
|
break;
|
|
case 49:
|
|
W(n);
|
|
break;
|
|
case 33:
|
|
ha(n);
|
|
break;
|
|
case 21:
|
|
da(n);
|
|
break;
|
|
case 53:
|
|
ja(n);
|
|
break;
|
|
case 41:
|
|
N(n);
|
|
break;
|
|
case 24:
|
|
ma(n);
|
|
break;
|
|
case 50:
|
|
T(n);
|
|
break;
|
|
case 54:
|
|
oa(n);
|
|
break;
|
|
case 51:
|
|
pa(n);
|
|
break;
|
|
case 55:
|
|
na(n);
|
|
break;
|
|
case 153:
|
|
break;
|
|
case 157:
|
|
r = sa(n, q);
|
|
break;
|
|
case 158:
|
|
xa(n);
|
|
break;
|
|
case 28:
|
|
la(n);
|
|
break;
|
|
case 29:
|
|
qa(n);
|
|
break;
|
|
case 154:
|
|
ia(n, q);
|
|
break;
|
|
case 159:
|
|
wa(n, q);
|
|
break;
|
|
case 32:
|
|
Ia(n);
|
|
break;
|
|
case 34:
|
|
va(n);
|
|
break;
|
|
case 35:
|
|
ya(n);
|
|
break;
|
|
case 36:
|
|
Ga(n);
|
|
break;
|
|
case 37:
|
|
Ha(n);
|
|
break;
|
|
case 39:
|
|
Aa(n);
|
|
break;
|
|
case 40:
|
|
ra(n);
|
|
break;
|
|
case 141:
|
|
r = ta(n, q);
|
|
break;
|
|
case 38:
|
|
Ba(n);
|
|
break;
|
|
case 52:
|
|
Ma(n);
|
|
break;
|
|
case 48:
|
|
Na(n);
|
|
break;
|
|
case 61:
|
|
Oa(n);
|
|
break;
|
|
case 82:
|
|
Pa(n);
|
|
break;
|
|
case 136:
|
|
Qa(n, q);
|
|
break;
|
|
case 155:
|
|
Ra(n, q);
|
|
break;
|
|
case 60:
|
|
Sa(n);
|
|
break;
|
|
case 65:
|
|
Ta(n);
|
|
break;
|
|
case 58:
|
|
Ua(n);
|
|
break;
|
|
case 59:
|
|
Wa(n);
|
|
break;
|
|
case 70:
|
|
Xa(n);
|
|
break;
|
|
case 73:
|
|
Ya(n);
|
|
break;
|
|
case 78:
|
|
Za(n);
|
|
break;
|
|
case 66:
|
|
$a(n);
|
|
break;
|
|
case 67:
|
|
ab(n);
|
|
break;
|
|
case 83:
|
|
bb(n);
|
|
break;
|
|
case 64:
|
|
cb(n);
|
|
break;
|
|
case 79:
|
|
db(n);
|
|
break;
|
|
case 69:
|
|
eb(n);
|
|
break;
|
|
case 148:
|
|
fb(n, q);
|
|
break;
|
|
case 74:
|
|
gb(n);
|
|
break;
|
|
case 75:
|
|
hb(n);
|
|
break;
|
|
case 68:
|
|
ib(n);
|
|
break;
|
|
case 71:
|
|
jb(n);
|
|
break;
|
|
case 72:
|
|
kb(n);
|
|
break;
|
|
case 63:
|
|
lb(n);
|
|
break;
|
|
case 96:
|
|
mb(n);
|
|
break;
|
|
case 99:
|
|
nb(n);
|
|
break;
|
|
case 97:
|
|
ob(n);
|
|
break;
|
|
case 100:
|
|
pb(n);
|
|
break;
|
|
case 101:
|
|
qb(n);
|
|
break;
|
|
case 98:
|
|
rb(n);
|
|
break;
|
|
case 81:
|
|
sb(n);
|
|
break;
|
|
case 80:
|
|
tb(n);
|
|
break;
|
|
case 76:
|
|
ub(n);
|
|
break;
|
|
case 62:
|
|
vb(n);
|
|
break;
|
|
case 77:
|
|
wb(n);
|
|
break;
|
|
case 135:
|
|
xb(n, q);
|
|
break;
|
|
case 84:
|
|
yb(n);
|
|
break;
|
|
case 85:
|
|
zb(n);
|
|
break;
|
|
case 102:
|
|
Ab(n);
|
|
break;
|
|
case 103:
|
|
Bb(n);
|
|
break;
|
|
case 104:
|
|
Cb(n);
|
|
break;
|
|
case 142:
|
|
Db(n, q);
|
|
break;
|
|
case 105:
|
|
Eb(n);
|
|
break;
|
|
case 43:
|
|
Fb(n);
|
|
break;
|
|
case 44:
|
|
Gb(n);
|
|
break;
|
|
case 143:
|
|
Hb(n, q);
|
|
break;
|
|
case 42:
|
|
Ib(n);
|
|
break;
|
|
case 45:
|
|
Jb(n);
|
|
break;
|
|
case 137:
|
|
break;
|
|
case 0:
|
|
n.isEndOfActions = !0;
|
|
break;
|
|
default:
|
|
throw Error("Unknown action code: " + x);;
|
|
}
|
|
g = r;
|
|
f.recoveringFromError = !1;
|
|
} catch (u) {
|
|
n = f.context;
|
|
u = w(u);
|
|
if (k.avm1ErrorsEnabled.value && !n.isTryCatchListening || u instanceof ua) {
|
|
throw u;
|
|
}
|
|
if (u instanceof Ka) {
|
|
throw u;
|
|
}
|
|
Kb.instance.reportTelemetry({topic:"error", error:1});
|
|
if (!f.recoveringFromError) {
|
|
if (1E3 <= n.errorsIgnored++) {
|
|
throw new ua("long running script -- AVM1 errors limit is reached");
|
|
}
|
|
console.error("AVM1 error: " + u);
|
|
b.AVM2.Runtime.AVM2.instance.exceptions.push({source:"avm1", message:u.message, stack:u.stack});
|
|
f.recoveringFromError = !0;
|
|
}
|
|
}
|
|
h = g ? h.conditionalJumpTo : h.next;
|
|
h = a.actions[h];
|
|
}
|
|
return l.pop();
|
|
}
|
|
var Lb = b.AVM2.ABC.Multiname, Ob = b.AVM2.Runtime.forEachPublicProperty, Nb = b.AVM2.Runtime.construct, Mb = b.isNumeric, La = b.isFunction, Tb = b.Debug.notImplemented, Ea = b.Options.Option, Kb = b.Telemetry, Da = b.Debug.assert, Fa = b.Settings.shumwayOptions.register(new b.Options.OptionSet("AVM1"));
|
|
k.avm1TraceEnabled = Fa.register(new Ea("t1", "traceAvm1", "boolean", !1, "trace AVM1 execution"));
|
|
k.avm1ErrorsEnabled = Fa.register(new Ea("e1", "errorsAvm1", "boolean", !1, "fail on AVM1 warnings and errors"));
|
|
k.avm1TimeoutDisabled = Fa.register(new Ea("ha1", "nohangAvm1", "boolean", !1, "disable fail on AVM1 hang"));
|
|
k.avm1CompilerEnabled = Fa.register(new Ea("ca1", "compileAvm1", "boolean", !0, "compiles AVM1 code"));
|
|
k.avm1DebuggerEnabled = Fa.register(new Ea("da1", "debugAvm1", "boolean", !1, "allows AVM1 code debugging"));
|
|
k.Debugger = {pause:!1, breakpoints:{}};
|
|
var Ub = function() {
|
|
function a(b, c) {
|
|
this.scope = b;
|
|
this.next = c;
|
|
}
|
|
a.prototype.create = function(b) {
|
|
return new a(b, this);
|
|
};
|
|
return a;
|
|
}(), Vb = function(a) {
|
|
function c(d) {
|
|
a.call(this);
|
|
this.swfVersion = d;
|
|
this.globals = new b.AVM2.AS.avm1lib.AVM1Globals;
|
|
8 <= d && this.globals.asSetPublicProperty("flash", b.AVM2.AS.avm1lib.createFlashObject());
|
|
this.initialScope = new Ub(this.globals, null);
|
|
this.assets = {};
|
|
this.assetsSymbols = [];
|
|
this.assetsClasses = [];
|
|
this.executionProhibited = this.isActive = !1;
|
|
this.stackDepth = this.abortExecutionAt = 0;
|
|
this.isTryCatchListening = !1;
|
|
this.errorsIgnored = 0;
|
|
this.deferScriptExecution = !0;
|
|
this.pendingScripts = [];
|
|
}
|
|
__extends(c, a);
|
|
c.prototype.addAsset = function(a, c, d) {
|
|
this.assets[a] = c;
|
|
this.assetsSymbols[c] && b.Debug.warning("Symbol " + c + " was exported already under different name");
|
|
this.assetsSymbols[c] = d;
|
|
};
|
|
c.prototype.registerClass = function(a, c) {
|
|
var d = this.assets[a];
|
|
void 0 === d ? b.Debug.error("Cannot register " + a + " class for symbol") : this.assetsClasses[d] = c;
|
|
};
|
|
c.prototype.getAsset = function(a) {
|
|
a = this.assets[a];
|
|
return void 0 === a ? void 0 : {symbolId:a, symbolProps:this.assetsSymbols[a], theClass:this.assetsClasses[a]};
|
|
};
|
|
c.prototype.resolveTarget = function(a) {
|
|
var b = this.currentTarget || this.defaultTarget;
|
|
a ? "string" === typeof a && (a = G(a, b, this.globals.asGetPublicProperty("_root"))) : a = b;
|
|
if ("object" !== typeof a || null === a || !("_nativeAS3Object" in a)) {
|
|
throw Error("Invalid AVM1 target object: " + Object.prototype.toString.call(a));
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype.resolveLevel = function(a) {
|
|
return this.resolveTarget(this.globals["_level" + a]);
|
|
};
|
|
c.prototype.addToPendingScripts = function(a) {
|
|
this.deferScriptExecution ? this.pendingScripts.push(a) : a();
|
|
};
|
|
c.prototype.flushPendingScripts = function() {
|
|
for (var a = this.pendingScripts;a.length;) {
|
|
a.shift()();
|
|
}
|
|
this.deferScriptExecution = !1;
|
|
};
|
|
c.prototype.executeActions = function(a, b) {
|
|
y(a, this, b);
|
|
};
|
|
return c;
|
|
}(k.AVM1Context);
|
|
k.AVM1Context.create = function(a) {
|
|
return new Vb(a);
|
|
};
|
|
var Ka = function() {
|
|
return function(a) {
|
|
this.error = a;
|
|
};
|
|
}(), ua = function(a) {
|
|
function b(c, d) {
|
|
a.call(this, c);
|
|
this.error = d;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(Error);
|
|
k.executeActions = y;
|
|
var Ja = {}, Sb = function() {
|
|
function a() {
|
|
a.cachedCalls || (a.cachedCalls = Rb());
|
|
}
|
|
a.prototype.convertArgs = function(a, b, c) {
|
|
for (var d = [], h = 0;h < a.length;h++) {
|
|
var e = a[h];
|
|
if ("object" !== typeof e || null === e || Array.isArray(e)) {
|
|
void 0 === e ? d.push("undefined") : d.push(JSON.stringify(e));
|
|
} else {
|
|
if (e instanceof k.ParsedPushConstantAction) {
|
|
var f = "", g = c.constantPool;
|
|
g && (f = g[e.constantIndex], f = void 0 === f ? "undefined" : JSON.stringify(f), f = 0 <= f.indexOf("*/") ? "" : " /* " + f + " */");
|
|
d.push("constantPool[" + e.constantIndex + "]" + f);
|
|
} else {
|
|
e instanceof k.ParsedPushRegisterAction ? d.push("registers[" + e.registerNumber + "]") : e instanceof k.AVM1ActionsData ? (f = "code_" + b + "_" + h, c[f] = e, d.push("res." + f)) : Tb("Unknown AVM1 action argument type");
|
|
}
|
|
}
|
|
}
|
|
return d.join(",");
|
|
};
|
|
a.prototype.convertAction = function(a, b, c) {
|
|
switch(a.action.actionCode) {
|
|
case 153:
|
|
;
|
|
case 62:
|
|
return "";
|
|
case 136:
|
|
return c.constantPool = a.action.args[0], " constantPool = [" + this.convertArgs(a.action.args[0], b, c) + "];\n ectx.constantPool = constantPool;\n";
|
|
case 150:
|
|
return " stack.push(" + this.convertArgs(a.action.args, b, c) + ");\n";
|
|
case 138:
|
|
;
|
|
case 141:
|
|
return " if (calls." + a.action.actionName + "(ectx,[" + this.convertArgs(a.action.args, b, c) + "])) { position = " + a.conditionalJumpTo + "; break; }\n";
|
|
case 157:
|
|
return " if (!!stack.pop()) { position = " + a.conditionalJumpTo + "; break; }\n";
|
|
default:
|
|
return " calls." + a.action.actionName + "(ectx" + (a.action.args ? ",[" + this.convertArgs(a.action.args, b, c) + "]" : "") + ");\n";
|
|
}
|
|
};
|
|
a.prototype.checkAvm1Timeout = function(a) {
|
|
if (Date.now() >= a.context.abortExecutionAt) {
|
|
throw new ua("long running script -- AVM1 instruction hang timeout");
|
|
}
|
|
};
|
|
a.prototype.generate = function(b) {
|
|
var c = this, d = b.blocks, h = {}, e = 0;
|
|
b = b.dataId;
|
|
var f = "return function avm1gen_" + b + "(ectx) {\nvar position = 0;\nvar checkTimeAfter = 0;\nvar constantPool = ectx.constantPool, registers = ectx.registers, stack = ectx.stack;\n";
|
|
k.avm1DebuggerEnabled.value && (f += "/* Running " + b + " */ if (Shumway.AVM1.Debugger.pause || Shumway.AVM1.Debugger.breakpoints." + b + ") { debugger; }\n");
|
|
f += "while (!ectx.isEndOfActions) {\nif (checkTimeAfter <= 0) { checkTimeAfter = 1000; checkTimeout(ectx); }\nswitch(position) {\n";
|
|
d.forEach(function(a) {
|
|
f += " case " + a.label + ":\n";
|
|
a.items.forEach(function(a) {
|
|
f += c.convertAction(a, e++, h);
|
|
});
|
|
f += " position = " + a.jump + ";\n checkTimeAfter -= " + a.items.length + ";\n break;\n";
|
|
});
|
|
f += " default: ectx.isEndOfActions = true; break;\n}\n}\nreturn stack.pop();};";
|
|
return(new Function("calls", "res", "checkTimeout", f))(a.cachedCalls, h, this.checkAvm1Timeout);
|
|
};
|
|
return a;
|
|
}(), Va = function() {
|
|
function a() {
|
|
}
|
|
a.get = function() {
|
|
return k.avm1TraceEnabled.value ? a.tracer : a.nullTracer;
|
|
};
|
|
a.tracer = function() {
|
|
var a = 0;
|
|
return{print:function(b, c) {
|
|
for (var d = b.position, h = b.actionCode, e = b.actionName, f = [], g = 0;g < c.length;g++) {
|
|
var k = c[g];
|
|
f.push(k && "object" === typeof k ? "[" + (k.constructor && k.constructor.name ? k.constructor.name : "Object") + "]" : k);
|
|
}
|
|
g = Array(a + 1).join("..");
|
|
console.log("AVM1 trace: " + g + d + ": " + e + "(" + h.toString(16) + "), stack=" + f);
|
|
}, indent:function() {
|
|
a++;
|
|
}, unindent:function() {
|
|
a--;
|
|
}, message:function(a) {
|
|
console.log("AVM1 trace: ------- " + a);
|
|
}};
|
|
}();
|
|
a.nullTracer = {print:function(a, b) {
|
|
}, indent:function() {
|
|
}, unindent:function() {
|
|
}, message:function(a) {
|
|
}};
|
|
return a;
|
|
}();
|
|
})(b.AVM1 || (b.AVM1 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
var g = b.AVM2.AS.ASObject, k = b.AVM2.AS.flash, m = b.AVM1.AVM1Context, d = function(a) {
|
|
function b() {
|
|
}
|
|
__extends(b, a);
|
|
b.addProperty = function(a, b, c, d, f) {
|
|
"undefined" === typeof f && (f = !0);
|
|
a.asDefinePublicProperty(b, {get:c, set:d || void 0, enumerable:f, configurable:!0});
|
|
};
|
|
b.resolveTarget = function(a) {
|
|
"undefined" === typeof a && (a = void 0);
|
|
return m.instance.resolveTarget(a);
|
|
};
|
|
b.resolveLevel = function(a) {
|
|
return m.instance.resolveLevel(+a);
|
|
};
|
|
Object.defineProperty(b, "currentStage", {get:function() {
|
|
return f.getAVM1Object(m.instance.root._nativeAS3Object.stage);
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b, "swfVersion", {get:function() {
|
|
return m.instance.swfVersion;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.getAVM1Object = function(a) {
|
|
return f.getAVM1Object(a);
|
|
};
|
|
b._installObjectMethods = function() {
|
|
var a = g.asGetPublicProperty("prototype");
|
|
g.asSetPublicProperty("registerClass", function(a, b) {
|
|
m.instance.registerClass(a, b);
|
|
});
|
|
a.asDefinePublicProperty("addProperty", {value:function(a, b, c) {
|
|
if ("string" !== typeof a || "" === a || "function" !== typeof b || "function" !== typeof c && null !== c) {
|
|
return!1;
|
|
}
|
|
this.asDefinePublicProperty(a, {get:b, set:c || void 0, configurable:!0, enumerable:!0});
|
|
return!0;
|
|
}, writable:!1, enumerable:!1, configurable:!1});
|
|
};
|
|
b.classInitializer = null;
|
|
b.initializer = null;
|
|
b.classSymbols = ["createFlashObject!"];
|
|
b.instanceSymbols = null;
|
|
return b;
|
|
}(b.AVM2.AS.ASNative);
|
|
f.AVM1Utils = d;
|
|
f.initDefaultListeners = function(a) {
|
|
var b = a.asGetPublicProperty("_as2DefaultListeners");
|
|
if (b) {
|
|
for (var d = 0;d < b.length;d++) {
|
|
var f = b[d];
|
|
f.asGetPublicProperty("setter").call(a, f.value);
|
|
}
|
|
}
|
|
};
|
|
f.createFlashObject = function() {
|
|
return d.createFlashObject();
|
|
};
|
|
f.getAVM1Object = function(a) {
|
|
return a ? a._as2Object ? a._as2Object : k.display.MovieClip.isType(a) ? a._avm1SymbolClass ? b.AVM2.AS.avm1lib.AVM1MovieClip._initFromConstructor(a._avm1SymbolClass, a) : new b.AVM2.AS.avm1lib.AVM1MovieClip(a) : k.display.SimpleButton.isType(a) ? new b.AVM2.AS.avm1lib.AVM1Button(a) : k.text.TextField.isType(a) ? new b.AVM2.AS.avm1lib.AVM1TextField(a) : k.display.BitmapData.isType(a) ? new a : null : null;
|
|
};
|
|
})(g.avm1lib || (g.avm1lib = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
var k = b.Debug.somewhatImplemented, s;
|
|
(function(b) {
|
|
b[b.IdleToOverUp = 1] = "IdleToOverUp";
|
|
b[b.OverUpToIdle = 2] = "OverUpToIdle";
|
|
b[b.OverUpToOverDown = 4] = "OverUpToOverDown";
|
|
b[b.OverDownToOverUp = 8] = "OverDownToOverUp";
|
|
b[b.OverDownToOutDown = 16] = "OverDownToOutDown";
|
|
b[b.OutDownToOverDown = 32] = "OutDownToOverDown";
|
|
b[b.OutDownToIdle = 64] = "OutDownToIdle";
|
|
b[b.IdleToOverDown = 128] = "IdleToOverDown";
|
|
b[b.OverDownToIdle = 256] = "OverDownToIdle";
|
|
})(s || (s = {}));
|
|
var m = [-1, 37, 39, 36, 35, 45, 46, -1, 8, -1, -1, -1, -1, 13, 38, 40, 33, 34, 9, 27];
|
|
s = function(d) {
|
|
function a(a) {
|
|
a && this._init(a);
|
|
}
|
|
__extends(a, d);
|
|
a.prototype._init = function(a) {
|
|
this._nativeAS3Object = a;
|
|
f.initDefaultListeners(this);
|
|
if (a._symbol && a._symbol.buttonActions) {
|
|
this._nativeAS3Object.addEventListener("addedToStage", this._addListeners.bind(this));
|
|
this._nativeAS3Object.addEventListener("removedFromStage", this._removeListeners.bind(this));
|
|
var d = this._requiredListeners = Object.create(null);
|
|
a = this._actions = a._symbol.buttonActions;
|
|
for (var g = 0;g < a.length;g++) {
|
|
var e = a[g];
|
|
e.actionsBlock || (e.actionsBlock = new b.AVM1.AVM1ActionsData(e.actionsData, "i" + g));
|
|
if (e.keyCode) {
|
|
d.keyDown = this._keyDownHandler.bind(this);
|
|
} else {
|
|
var m;
|
|
switch(e.stateTransitionFlags) {
|
|
case 64:
|
|
m = "releaseOutside";
|
|
break;
|
|
case 1:
|
|
m = "rollOver";
|
|
break;
|
|
case 2:
|
|
m = "rollOut";
|
|
break;
|
|
case 4:
|
|
m = "mouseDown";
|
|
break;
|
|
case 8:
|
|
m = "mouseUp";
|
|
break;
|
|
case 16:
|
|
;
|
|
case 32:
|
|
k("AVM1 drag over/out button actions");
|
|
break;
|
|
case 128:
|
|
;
|
|
case 256:
|
|
k("AVM1 drag trackAsMenu over/out button actions");
|
|
break;
|
|
default:
|
|
warn("Unknown AVM1 button action type: " + e.stateTransitionFlags);
|
|
continue;
|
|
}
|
|
d[m] = this._mouseEventHandler.bind(this, e.stateTransitionFlags);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
a.prototype._addListeners = function() {
|
|
for (var a in this._requiredListeners) {
|
|
("keyDown" === a ? this._nativeAS3Object.stage : this._nativeAS3Object).addEventListener(a, this._requiredListeners[a]);
|
|
}
|
|
};
|
|
a.prototype._removeListeners = function() {
|
|
for (var a in this._requiredListeners) {
|
|
("keyDown" === a ? this._nativeAS3Object.stage : this._nativeAS3Object).removeEventListener(a, this._requiredListeners[a]);
|
|
}
|
|
};
|
|
a.prototype._keyDownHandler = function(a) {
|
|
for (var b = this._actions, d = 0;d < b.length;d++) {
|
|
var e = b[d];
|
|
e.keyCode && (32 > e.keyCode && m[e.keyCode] === a.asGetPublicProperty("keyCode") || e.keyCode === a.asGetPublicProperty("charCode")) && this._runAction(e);
|
|
}
|
|
};
|
|
a.prototype._mouseEventHandler = function(a) {
|
|
for (var b = this._actions, d = 0;d < b.length;d++) {
|
|
var e = b[d];
|
|
e.stateTransitionFlags === a && this._runAction(e);
|
|
}
|
|
};
|
|
a.prototype._runAction = function(a) {
|
|
this._nativeAS3Object.loaderInfo._avm1Context.executeActions(a.actionsBlock, f.getAVM1Object(this._nativeAS3Object._parent));
|
|
};
|
|
Object.defineProperty(a.prototype, "_as3Object", {get:function() {
|
|
return this._nativeAS3Object;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(g.ASNative);
|
|
f.AVM1Button = s;
|
|
})(g.avm1lib || (g.avm1lib = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
var k = b.Debug.assert, s = b.Debug.notImplemented, m = b.AVM2.AS.flash.text.TextFormat, d = b.AVM1.AVM1Context, a = b.AVM2.AS.Natives, c = function(b) {
|
|
function c() {
|
|
s("Dummy Constructor: public avm1lib.AVM1Globals");
|
|
}
|
|
__extends(c, b);
|
|
c._addInternalClasses = function(a) {
|
|
a.asSetPublicProperty("Object", g.ASObject);
|
|
a.asSetPublicProperty("Function", g.ASFunction);
|
|
a.asSetPublicProperty("Array", g.ASArray);
|
|
a.asSetPublicProperty("Number", g.ASNumber);
|
|
a.asSetPublicProperty("Math", g.ASMath);
|
|
a.asSetPublicProperty("Boolean", g.ASBoolean);
|
|
a.asSetPublicProperty("Date", g.ASDate);
|
|
a.asSetPublicProperty("RegExp", g.ASRegExp);
|
|
a.asSetPublicProperty("String", g.ASString);
|
|
};
|
|
c.prototype.ASSetPropFlags = function(a, b, c, d) {
|
|
};
|
|
c.prototype._addToPendingScripts = function(a, b, c) {
|
|
"undefined" === typeof c && (c = null);
|
|
k(b, "invalid function in _addToPendingScripts");
|
|
d.instance.addToPendingScripts(function() {
|
|
b.apply(a, c);
|
|
});
|
|
};
|
|
c.prototype.escape = function(a) {
|
|
return encodeURIComponent(a).replace(/\!|'|\(|\)|\*|-|\.|_|~/g, function(a) {
|
|
switch(a) {
|
|
case "*":
|
|
return "%2A";
|
|
case "-":
|
|
return "%2D";
|
|
case ".":
|
|
return "%2E";
|
|
case "_":
|
|
return "%5F";
|
|
default:
|
|
return globalEscape(a);
|
|
}
|
|
});
|
|
};
|
|
c.prototype.unescape = function(a) {
|
|
return decodeURIComponent(a);
|
|
};
|
|
c.prototype._setLevel = function(a, b) {
|
|
};
|
|
c.prototype.trace = function(b) {
|
|
a.print(b);
|
|
};
|
|
c.classInitializer = null;
|
|
c.initializer = function() {
|
|
m.prototype.asDefinePublicProperty("getTextExtent", {value:f.AVM1TextFormat.prototype._as2GetTextExtent, writable:!1, enumerable:!1, configurable:!1});
|
|
};
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = "_global! flash $asfunction call! chr! clearInterval! clearTimeout! duplicateMovieClip! fscommand! getAVM1Property! getTimer! getURL! getVersion! gotoAndPlay! gotoAndStop! gotoLabel! ifFrameLoaded! int! length! loadMovie! loadMovieNum! loadVariables! mbchr! mblength! mbord! mbsubstring! nextFrame! nextScene! ord! play! prevFrame! prevScene! print! printAsBitmap! printAsBitmapNum! printNum! random! removeMovieClip! setInterval! setAVM1Property! setTimeout! showRedrawRegions! startDrag! stop! stopAllSounds! stopDrag! substring! targetPath! toggleHighQuality! unloadMovie! unloadMovieNum! updateAfterEvent!".split(" ");
|
|
return c;
|
|
}(g.ASNative);
|
|
f.AVM1Globals = c;
|
|
})(g.avm1lib || (g.avm1lib = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var globalEscape = this.escape;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
var k = b.Debug.assert, s = b.AVM2.Runtime.construct, m = b.AVM1.AVM1Context, d = function(a) {
|
|
function c(a) {
|
|
this._nativeAS3Object = a;
|
|
this._boundExecuteFrameScripts = this._frameScripts = null;
|
|
}
|
|
__extends(c, a);
|
|
c.prototype._init = function(a) {
|
|
!this._nativeAS3Object && a && (this._nativeAS3Object = a, a._as2Object = this, f.initDefaultListeners(this));
|
|
};
|
|
Object.defineProperty(c.prototype, "context", {set:function(a) {
|
|
k(!this._context);
|
|
this._context = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
c._initFromConstructor = function(a, b) {
|
|
var c = Object.create(a.asGetPublicProperty("prototype"));
|
|
c._nativeAS3Object = b;
|
|
b._as2Object = c;
|
|
f.initDefaultListeners(c);
|
|
a.call(c);
|
|
return c;
|
|
};
|
|
Object.defineProperty(c.prototype, "_as3Object", {get:function() {
|
|
return this._nativeAS3Object;
|
|
}, enumerable:!0, configurable:!0});
|
|
c.prototype.attachBitmap = function(a, b, c, d) {
|
|
"undefined" === typeof c && (c = "auto");
|
|
"undefined" === typeof d && (d = !1);
|
|
a = s(g.flash.display.Bitmap, [a, c, d]);
|
|
this._insertChildAtDepth(a, b);
|
|
};
|
|
c.prototype._constructMovieClipSymbol = function(a, b) {
|
|
var c = m.instance.getAsset(a), d = Object.create(c.symbolProps);
|
|
d.avm1Name = b;
|
|
d.avm1SymbolClass = c.theClass;
|
|
c = g.flash.display.MovieClip.initializeFrom(d);
|
|
g.flash.display.MovieClip.instanceConstructorNoInitialize.call(c);
|
|
return c;
|
|
};
|
|
c.prototype.addFrameActionBlocks = function(a, b) {
|
|
var c = b.initActionBlocks, d = b.actionBlocks;
|
|
c && this._addInitActionBlocks(a, c);
|
|
if (d) {
|
|
for (c = 0;c < d.length;c++) {
|
|
this.addFrameScript(a, d[c]);
|
|
}
|
|
}
|
|
};
|
|
c.prototype.addFrameScript = function(a, c) {
|
|
var d = this._frameScripts;
|
|
d || (k(!this._boundExecuteFrameScripts), this._boundExecuteFrameScripts = this._executeFrameScripts.bind(this), d = this._frameScripts = []);
|
|
var f = d[a + 1];
|
|
f || (f = d[a + 1] = [], this._nativeAS3Object.addFrameScript(a, this._boundExecuteFrameScripts));
|
|
d = new b.AVM1.AVM1ActionsData(c, "f" + a + "i" + f.length);
|
|
f.push(d);
|
|
};
|
|
c.prototype._addInitActionBlocks = function(a, c) {
|
|
function d(k) {
|
|
if (f.currentFrame === a + 1) {
|
|
f.removeEventListener("enterFrame", d);
|
|
k = g._context;
|
|
for (var m = 0;m < c.length;m++) {
|
|
var r = new b.AVM1.AVM1ActionsData(c[m].actionsData, "f" + a + "i" + m);
|
|
k.executeActions(r, g);
|
|
}
|
|
}
|
|
}
|
|
var f = this._nativeAS3Object, g = this;
|
|
f.addEventListener("enterFrame", d);
|
|
};
|
|
c.prototype._executeFrameScripts = function() {
|
|
var a = this._context, b = this._frameScripts[this._nativeAS3Object.currentFrame];
|
|
k(b && b.length);
|
|
for (var c = 0;c < b.length;c++) {
|
|
a.executeActions(b[c], this);
|
|
}
|
|
};
|
|
c.prototype._callFrame = function(a) {
|
|
};
|
|
c.prototype._insertChildAtDepth = function(a, b) {
|
|
var c = this._nativeAS3Object;
|
|
c.addTimelineObjectAtDepth(a, Math.min(c.numChildren, b));
|
|
if (!g.flash.display.Bitmap.isType(a)) {
|
|
var c = f.getAVM1Object(a), d = a.name;
|
|
d && void 0 === this.asGetPublicProperty(d) && this.asSetPublicProperty(d, c);
|
|
}
|
|
};
|
|
c.prototype.getInstanceAtDepth = function(a) {
|
|
for (var b = this._nativeAS3Object, c = 0, d = b.numChildren;c < d;c++) {
|
|
var k = b.getChildAt(c);
|
|
if (k && k._depth === a) {
|
|
return g.flash.display.Bitmap.isType(k) ? this : f.getAVM1Object(k);
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
c.prototype.getNextHighestDepth = function() {
|
|
for (var a = this._nativeAS3Object, b = 0, c = 0, d = a.numChildren;c < d;c++) {
|
|
var f = a.getChildAt(c);
|
|
f._depth > b && (b = f._depth);
|
|
}
|
|
return b + 1;
|
|
};
|
|
c.prototype._duplicate = function(a, b, c) {
|
|
};
|
|
c.prototype._gotoLabel = function(a) {
|
|
this._nativeAS3Object._gotoFrame(a, null);
|
|
};
|
|
c.classInitializer = null;
|
|
c.initializer = null;
|
|
c.classSymbols = null;
|
|
c.instanceSymbols = ["__lookupChild!", "__targetPath!"];
|
|
return c;
|
|
}(g.ASNative);
|
|
f.AVM1MovieClip = d;
|
|
})(g.avm1lib || (g.avm1lib = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function f() {
|
|
}
|
|
__extends(f, b);
|
|
Object.defineProperty(f.prototype, "_as3Object", {get:function() {
|
|
return this._nativeAS3Object;
|
|
}, enumerable:!0, configurable:!0});
|
|
f.prototype._setAS3Object = function(b) {
|
|
this._nativeAS3Object = b;
|
|
};
|
|
Object.defineProperty(f.prototype, "_bytesLoaded", {get:function() {
|
|
return this._nativeAS3Object._contentLoaderInfo._bytesLoaded;
|
|
}, enumerable:!0, configurable:!0});
|
|
f.classInitializer = null;
|
|
f.initializer = null;
|
|
f.classSymbols = null;
|
|
f.instanceSymbols = null;
|
|
return f;
|
|
}(b.ASNative);
|
|
f.AVM1MovieClipLoader = k;
|
|
})(b.avm1lib || (b.avm1lib = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
var g = b.AVM2.Runtime.asCoerceString, k = b.AVM1.AVM1Context, m = function(d) {
|
|
function a(a, b, d) {
|
|
}
|
|
__extends(a, d);
|
|
a.loadBitmap = function(c) {
|
|
c = g(c);
|
|
return(c = k.instance.getAsset(c)) && c.symbolProps instanceof b.Timeline.BitmapSymbol ? (c = a.initializeFrom(c), c.class.instanceConstructorNoInitialize.call(c), c) : null;
|
|
};
|
|
a.classInitializer = null;
|
|
a.initializer = null;
|
|
a.classSymbols = null;
|
|
a.instanceSymbols = null;
|
|
return a;
|
|
}(b.AVM2.AS.flash.display.BitmapData);
|
|
f.AVM1BitmapData = m;
|
|
})(g.avm1lib || (g.avm1lib = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(f) {
|
|
var k = function(b) {
|
|
function g(b) {
|
|
this._variable = "";
|
|
this._init(b);
|
|
}
|
|
__extends(g, b);
|
|
g.prototype._init = function(b) {
|
|
this._nativeAS3Object = b;
|
|
b._as2Object = this;
|
|
f.initDefaultListeners(this);
|
|
};
|
|
Object.defineProperty(g.prototype, "_as3Object", {get:function() {
|
|
return this._nativeAS3Object;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(g.prototype, "variable", {get:function() {
|
|
return this._variable;
|
|
}, set:function(b) {
|
|
if (b !== this._variable) {
|
|
this._variable = b;
|
|
var a = this._nativeAS3Object, c;
|
|
if (0 <= b.indexOf(".") || 0 <= b.indexOf(":")) {
|
|
var g = b.split(/[.:\/]/g);
|
|
b = g.pop();
|
|
"_root" == g[0] || "" === g[0] ? (c = f.getAVM1Object(a.root), g.shift(), "" === g[0] && g.shift()) : c = f.getAVM1Object(a._parent);
|
|
for (;0 < g.length;) {
|
|
var k = g.shift();
|
|
c = c.asGetPublicProperty(k) || c[k];
|
|
if (!c) {
|
|
throw Error("Cannot find " + k + " variable");
|
|
}
|
|
}
|
|
} else {
|
|
c = f.getAVM1Object(a._parent);
|
|
}
|
|
c.asHasProperty(void 0, b, 0) || c.asSetPublicProperty(b, a.text);
|
|
a._addEventListener("advanceFrame", function() {
|
|
a.text = "" + c.asGetPublicProperty(b);
|
|
});
|
|
}
|
|
}, enumerable:!0, configurable:!0});
|
|
g.classInitializer = null;
|
|
g.initializer = null;
|
|
g.classSymbols = null;
|
|
g.instanceSymbols = null;
|
|
return g;
|
|
}(b.ASNative);
|
|
f.AVM1TextField = k;
|
|
})(b.avm1lib || (b.avm1lib = {}));
|
|
})(b.AS || (b.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
(function(f) {
|
|
var g = b.AVM2.AS.flash.text.TextField, k = function(b) {
|
|
function d() {
|
|
b.apply(this, arguments);
|
|
}
|
|
__extends(d, b);
|
|
d.prototype._as2GetTextExtent = function(a, b) {
|
|
var f = d._measureTextField;
|
|
f || (f = new g, f.multiline = !0, d._measureTextField = f);
|
|
!isNaN(b) && 0 < b ? (f.width = b + 4, f.wordWrap = !0) : f.wordWrap = !1;
|
|
f.defaultTextFormat = this;
|
|
f.text = a;
|
|
var k = {}, e = f.textWidth, m = f.textHeight;
|
|
k.asSetPublicProperty("width", e);
|
|
k.asSetPublicProperty("height", m);
|
|
k.asSetPublicProperty("textFieldWidth", e + 4);
|
|
k.asSetPublicProperty("textFieldHeight", m + 4);
|
|
f = f.getLineMetrics();
|
|
k.asSetPublicProperty("ascent", f.asGetPublicProperty("ascent"));
|
|
k.asSetPublicProperty("descent", f.asGetPublicProperty("descent"));
|
|
return k;
|
|
};
|
|
return d;
|
|
}(b.AVM2.AS.flash.text.TextFormat);
|
|
f.AVM1TextFormat = k;
|
|
})(g.avm1lib || (g.avm1lib = {}));
|
|
})(k.AS || (k.AS = {}));
|
|
})(b.AVM2 || (b.AVM2 = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
console.timeEnd("Load AVM1 Dependencies");
|
|
(function(b) {
|
|
(function(k) {
|
|
function g(a, d, h) {
|
|
return c && h ? "string" === typeof d ? (a = b.ColorUtilities.cssStyleToRGBA(d), b.ColorUtilities.rgbaToCSSStyle(h.transformRGBA(a))) : d instanceof CanvasGradient && d._template ? d._template.createCanvasGradient(a, h) : d : d;
|
|
}
|
|
var f = b.Debug.assert, t = b.NumberUtilities.clamp;
|
|
(function(a) {
|
|
a[a.None = 0] = "None";
|
|
a[a.Brief = 1] = "Brief";
|
|
a[a.Verbose = 2] = "Verbose";
|
|
})(k.TraceLevel || (k.TraceLevel = {}));
|
|
var s = b.Metrics.Counter.instance;
|
|
k.frameCounter = new b.Metrics.Counter(!0);
|
|
k.traceLevel = 2;
|
|
k.writer = null;
|
|
k.frameCount = function(a) {
|
|
s.count(a);
|
|
k.frameCounter.count(a);
|
|
};
|
|
k.timelineBuffer = new b.Tools.Profiler.TimelineBuffer("GFX");
|
|
k.enterTimeline = function(a, b) {
|
|
};
|
|
k.leaveTimeline = function(a, b) {
|
|
};
|
|
var m = null, d = null, a = null, c = !0;
|
|
c && "undefined" !== typeof CanvasRenderingContext2D && (m = CanvasGradient.prototype.addColorStop, d = CanvasRenderingContext2D.prototype.createLinearGradient, a = CanvasRenderingContext2D.prototype.createRadialGradient, CanvasRenderingContext2D.prototype.createLinearGradient = function(a, b, c, d) {
|
|
return(new p(a, b, c, d)).createCanvasGradient(this, null);
|
|
}, CanvasRenderingContext2D.prototype.createRadialGradient = function(a, b, c, d, h, f) {
|
|
return(new e(a, b, c, d, h, f)).createCanvasGradient(this, null);
|
|
}, CanvasGradient.prototype.addColorStop = function(a, b) {
|
|
m.call(this, a, b);
|
|
this._template.addColorStop(a, b);
|
|
});
|
|
var n = function() {
|
|
return function(a, b) {
|
|
this.offset = a;
|
|
this.color = b;
|
|
};
|
|
}(), p = function() {
|
|
function a(b, c, d, h) {
|
|
this.x0 = b;
|
|
this.y0 = c;
|
|
this.x1 = d;
|
|
this.y1 = h;
|
|
this.colorStops = [];
|
|
}
|
|
a.prototype.addColorStop = function(a, b) {
|
|
this.colorStops.push(new n(a, b));
|
|
};
|
|
a.prototype.createCanvasGradient = function(a, b) {
|
|
for (var c = d.call(a, this.x0, this.y0, this.x1, this.y1), h = this.colorStops, e = 0;e < h.length;e++) {
|
|
var f = h[e], k = f.offset, f = f.color, f = b ? g(a, f, b) : f;
|
|
m.call(c, k, f);
|
|
}
|
|
c._template = this;
|
|
c._transform = this._transform;
|
|
return c;
|
|
};
|
|
return a;
|
|
}(), e = function() {
|
|
function b(a, c, d, h, f, e) {
|
|
this.x0 = a;
|
|
this.y0 = c;
|
|
this.r0 = d;
|
|
this.x1 = h;
|
|
this.y1 = f;
|
|
this.r1 = e;
|
|
this.colorStops = [];
|
|
}
|
|
b.prototype.addColorStop = function(a, b) {
|
|
this.colorStops.push(new n(a, b));
|
|
};
|
|
b.prototype.createCanvasGradient = function(b, c) {
|
|
for (var d = a.call(b, this.x0, this.y0, this.r0, this.x1, this.y1, this.r1), h = this.colorStops, f = 0;f < h.length;f++) {
|
|
var e = h[f], k = e.offset, e = e.color, e = c ? g(b, e, c) : e;
|
|
m.call(d, k, e);
|
|
}
|
|
d._template = this;
|
|
d._transform = this._transform;
|
|
return d;
|
|
};
|
|
return b;
|
|
}(), q;
|
|
(function(a) {
|
|
a[a.ClosePath = 1] = "ClosePath";
|
|
a[a.MoveTo = 2] = "MoveTo";
|
|
a[a.LineTo = 3] = "LineTo";
|
|
a[a.QuadraticCurveTo = 4] = "QuadraticCurveTo";
|
|
a[a.BezierCurveTo = 5] = "BezierCurveTo";
|
|
a[a.ArcTo = 6] = "ArcTo";
|
|
a[a.Rect = 7] = "Rect";
|
|
a[a.Arc = 8] = "Arc";
|
|
a[a.Save = 9] = "Save";
|
|
a[a.Restore = 10] = "Restore";
|
|
a[a.Transform = 11] = "Transform";
|
|
})(q || (q = {}));
|
|
var l = function() {
|
|
function a(b) {
|
|
this._commands = new Uint8Array(a._arrayBufferPool.acquire(8), 0, 8);
|
|
this._commandPosition = 0;
|
|
this._data = new Float64Array(a._arrayBufferPool.acquire(8 * Float64Array.BYTES_PER_ELEMENT), 0, 8);
|
|
this._dataPosition = 0;
|
|
b instanceof a && this.addPath(b);
|
|
}
|
|
a._apply = function(a, b) {
|
|
var c = a._commands, d = a._data, h = 0, e = 0;
|
|
b.beginPath();
|
|
for (var f = a._commandPosition;h < f;) {
|
|
switch(c[h++]) {
|
|
case 1:
|
|
b.closePath();
|
|
break;
|
|
case 2:
|
|
b.moveTo(d[e++], d[e++]);
|
|
break;
|
|
case 3:
|
|
b.lineTo(d[e++], d[e++]);
|
|
break;
|
|
case 4:
|
|
b.quadraticCurveTo(d[e++], d[e++], d[e++], d[e++]);
|
|
break;
|
|
case 5:
|
|
b.bezierCurveTo(d[e++], d[e++], d[e++], d[e++], d[e++], d[e++]);
|
|
break;
|
|
case 6:
|
|
b.arcTo(d[e++], d[e++], d[e++], d[e++], d[e++]);
|
|
break;
|
|
case 7:
|
|
b.rect(d[e++], d[e++], d[e++], d[e++]);
|
|
break;
|
|
case 8:
|
|
b.arc(d[e++], d[e++], d[e++], d[e++], d[e++], !!d[e++]);
|
|
break;
|
|
case 9:
|
|
b.save();
|
|
break;
|
|
case 10:
|
|
b.restore();
|
|
break;
|
|
case 11:
|
|
b.transform(d[e++], d[e++], d[e++], d[e++], d[e++], d[e++]);
|
|
}
|
|
}
|
|
};
|
|
a.prototype._ensureCommandCapacity = function(b) {
|
|
this._commands = a._arrayBufferPool.ensureUint8ArrayLength(this._commands, b);
|
|
};
|
|
a.prototype._ensureDataCapacity = function(b) {
|
|
this._data = a._arrayBufferPool.ensureFloat64ArrayLength(this._data, b);
|
|
};
|
|
a.prototype._writeCommand = function(a) {
|
|
this._commandPosition >= this._commands.length && this._ensureCommandCapacity(this._commandPosition + 1);
|
|
this._commands[this._commandPosition++] = a;
|
|
};
|
|
a.prototype._writeData = function(a, b, c, d, h, e) {
|
|
var g = arguments.length;
|
|
f(6 >= g && (0 === g % 2 || 5 === g));
|
|
this._dataPosition + g >= this._data.length && this._ensureDataCapacity(this._dataPosition + g);
|
|
var k = this._data, l = this._dataPosition;
|
|
k[l] = a;
|
|
k[l + 1] = b;
|
|
2 < g && (k[l + 2] = c, k[l + 3] = d, 4 < g && (k[l + 4] = h, 6 === g && (k[l + 5] = e)));
|
|
this._dataPosition += g;
|
|
};
|
|
a.prototype.closePath = function() {
|
|
this._writeCommand(1);
|
|
};
|
|
a.prototype.moveTo = function(a, b) {
|
|
this._writeCommand(2);
|
|
this._writeData(a, b);
|
|
};
|
|
a.prototype.lineTo = function(a, b) {
|
|
this._writeCommand(3);
|
|
this._writeData(a, b);
|
|
};
|
|
a.prototype.quadraticCurveTo = function(a, b, c, d) {
|
|
this._writeCommand(4);
|
|
this._writeData(a, b, c, d);
|
|
};
|
|
a.prototype.bezierCurveTo = function(a, b, c, d, h, e) {
|
|
this._writeCommand(5);
|
|
this._writeData(a, b, c, d, h, e);
|
|
};
|
|
a.prototype.arcTo = function(a, b, c, d, h) {
|
|
this._writeCommand(6);
|
|
this._writeData(a, b, c, d, h);
|
|
};
|
|
a.prototype.rect = function(a, b, c, d) {
|
|
this._writeCommand(7);
|
|
this._writeData(a, b, c, d);
|
|
};
|
|
a.prototype.arc = function(a, b, c, d, h, e) {
|
|
this._writeCommand(8);
|
|
this._writeData(a, b, c, d, h, +e);
|
|
};
|
|
a.prototype.addPath = function(a, b) {
|
|
b && (this._writeCommand(9), this._writeCommand(11), this._writeData(b.a, b.b, b.c, b.d, b.e, b.f));
|
|
var c = this._commandPosition + a._commandPosition;
|
|
c >= this._commands.length && this._ensureCommandCapacity(c);
|
|
for (var d = this._commands, h = a._commands, e = this._commandPosition, f = 0;e < c;e++) {
|
|
d[e] = h[f++];
|
|
}
|
|
this._commandPosition = c;
|
|
c = this._dataPosition + a._dataPosition;
|
|
c >= this._data.length && this._ensureDataCapacity(c);
|
|
d = this._data;
|
|
h = a._data;
|
|
e = this._dataPosition;
|
|
for (f = 0;e < c;e++) {
|
|
d[e] = h[f++];
|
|
}
|
|
this._dataPosition = c;
|
|
b && this._writeCommand(10);
|
|
};
|
|
a._arrayBufferPool = new b.ArrayBufferPool;
|
|
return a;
|
|
}();
|
|
k.Path = l;
|
|
if ("undefined" !== typeof CanvasRenderingContext2D && ("undefined" === typeof Path2D || !Path2D.prototype.addPath)) {
|
|
var u = CanvasRenderingContext2D.prototype.fill;
|
|
CanvasRenderingContext2D.prototype.fill = function(a, b) {
|
|
arguments.length && (a instanceof l ? l._apply(a, this) : b = a);
|
|
b ? u.call(this, b) : u.call(this);
|
|
};
|
|
var w = CanvasRenderingContext2D.prototype.stroke;
|
|
CanvasRenderingContext2D.prototype.stroke = function(a, b) {
|
|
arguments.length && (a instanceof l ? l._apply(a, this) : b = a);
|
|
b ? w.call(this, b) : w.call(this);
|
|
};
|
|
var r = CanvasRenderingContext2D.prototype.clip;
|
|
CanvasRenderingContext2D.prototype.clip = function(a, b) {
|
|
arguments.length && (a instanceof l ? l._apply(a, this) : b = a);
|
|
b ? r.call(this, b) : r.call(this);
|
|
};
|
|
window.Path2D = l;
|
|
}
|
|
if ("undefined" !== typeof CanvasPattern && Path2D.prototype.addPath) {
|
|
q = function(a) {
|
|
this._transform = a;
|
|
this._template && (this._template._transform = a);
|
|
};
|
|
CanvasPattern.prototype.setTransform || (CanvasPattern.prototype.setTransform = q);
|
|
CanvasGradient.prototype.setTransform || (CanvasGradient.prototype.setTransform = q);
|
|
var h = CanvasRenderingContext2D.prototype.fill, x = CanvasRenderingContext2D.prototype.stroke;
|
|
CanvasRenderingContext2D.prototype.fill = function(a, b) {
|
|
var c = !!this.fillStyle._transform;
|
|
if ((this.fillStyle instanceof CanvasPattern || this.fillStyle instanceof CanvasGradient) && c && a instanceof Path2D) {
|
|
var c = this.fillStyle._transform, d;
|
|
try {
|
|
d = c.inverse();
|
|
} catch (e) {
|
|
d = c = k.Geometry.Matrix.createIdentitySVGMatrix();
|
|
}
|
|
this.transform(c.a, c.b, c.c, c.d, c.e, c.f);
|
|
c = new Path2D;
|
|
c.addPath(a, d);
|
|
h.call(this, c, b);
|
|
this.transform(d.a, d.b, d.c, d.d, d.e, d.f);
|
|
} else {
|
|
0 === arguments.length ? h.call(this) : 1 === arguments.length ? h.call(this, a) : 2 === arguments.length && h.call(this, a, b);
|
|
}
|
|
};
|
|
CanvasRenderingContext2D.prototype.stroke = function(a) {
|
|
var b = !!this.strokeStyle._transform;
|
|
if ((this.strokeStyle instanceof CanvasPattern || this.strokeStyle instanceof CanvasGradient) && b && a instanceof Path2D) {
|
|
var c = this.strokeStyle._transform, b = c.inverse();
|
|
this.transform(c.a, c.b, c.c, c.d, c.e, c.f);
|
|
c = new Path2D;
|
|
c.addPath(a, b);
|
|
var d = this.lineWidth;
|
|
this.lineWidth *= (b.a + b.d) / 2;
|
|
x.call(this, c);
|
|
this.transform(b.a, b.b, b.c, b.d, b.e, b.f);
|
|
this.lineWidth = d;
|
|
} else {
|
|
0 === arguments.length ? x.call(this) : 1 === arguments.length && x.call(this, a);
|
|
}
|
|
};
|
|
}
|
|
"undefined" !== typeof CanvasRenderingContext2D && function() {
|
|
function a(b) {
|
|
return b.a;
|
|
}
|
|
function b(a) {
|
|
return a.d;
|
|
}
|
|
CanvasRenderingContext2D.prototype.flashStroke = function(c, d) {
|
|
var h = this.currentTransform;
|
|
if (!h) {
|
|
if (h = this.mozCurrentTransform) {
|
|
h = k.Geometry.Matrix.createSVGMatrixFromArray(h);
|
|
} else {
|
|
this.stroke(c);
|
|
return;
|
|
}
|
|
}
|
|
var e = new Path2D;
|
|
e.addPath(c, h);
|
|
var f = this.lineWidth;
|
|
this.setTransform(1, 0, 0, 1, 0, 0);
|
|
switch(d) {
|
|
case 1:
|
|
this.lineWidth = t(f * (a(h) + b(h)) / 2, 1, 1024);
|
|
break;
|
|
case 2:
|
|
this.lineWidth = t(f * b(h), 1, 1024);
|
|
break;
|
|
case 3:
|
|
this.lineWidth = t(f * a(h), 1, 1024);
|
|
}
|
|
this.stroke(e);
|
|
this.setTransform(h.a, h.b, h.c, h.d, h.e, h.f);
|
|
this.lineWidth = f;
|
|
};
|
|
}();
|
|
if ("undefined" !== typeof CanvasRenderingContext2D && void 0 === CanvasRenderingContext2D.prototype.globalColorMatrix) {
|
|
var y = CanvasRenderingContext2D.prototype.fill, G = CanvasRenderingContext2D.prototype.stroke, I = CanvasRenderingContext2D.prototype.fillText, C = CanvasRenderingContext2D.prototype.strokeText;
|
|
Object.defineProperty(CanvasRenderingContext2D.prototype, "globalColorMatrix", {get:function() {
|
|
return this._globalColorMatrix ? this._globalColorMatrix.clone() : null;
|
|
}, set:function(a) {
|
|
a ? this._globalColorMatrix ? this._globalColorMatrix.set(a) : this._globalColorMatrix = a.clone() : this._globalColorMatrix = null;
|
|
}, enumerable:!0, configurable:!0});
|
|
CanvasRenderingContext2D.prototype.fill = function(a, b) {
|
|
var c = null;
|
|
this._globalColorMatrix && (c = this.fillStyle, this.fillStyle = g(this, this.fillStyle, this._globalColorMatrix));
|
|
0 === arguments.length ? y.call(this) : 1 === arguments.length ? y.call(this, a) : 2 === arguments.length && y.call(this, a, b);
|
|
c && (this.fillStyle = c);
|
|
};
|
|
CanvasRenderingContext2D.prototype.stroke = function(a, b) {
|
|
var c = null;
|
|
this._globalColorMatrix && (c = this.strokeStyle, this.strokeStyle = g(this, this.strokeStyle, this._globalColorMatrix));
|
|
0 === arguments.length ? G.call(this) : 1 === arguments.length && G.call(this, a);
|
|
c && (this.strokeStyle = c);
|
|
};
|
|
CanvasRenderingContext2D.prototype.fillText = function(a, c, d, h) {
|
|
var e = null;
|
|
this._globalColorMatrix && (e = this.fillStyle, this.fillStyle = g(this, this.fillStyle, this._globalColorMatrix));
|
|
3 === arguments.length ? I.call(this, a, c, d) : 4 === arguments.length ? I.call(this, a, c, d, h) : b.Debug.unexpected();
|
|
e && (this.fillStyle = e);
|
|
};
|
|
CanvasRenderingContext2D.prototype.strokeText = function(a, c, d, h) {
|
|
var e = null;
|
|
this._globalColorMatrix && (e = this.strokeStyle, this.strokeStyle = g(this, this.strokeStyle, this._globalColorMatrix));
|
|
3 === arguments.length ? C.call(this, a, c, d) : 4 === arguments.length ? C.call(this, a, c, d, h) : b.Debug.unexpected();
|
|
e && (this.strokeStyle = e);
|
|
};
|
|
}
|
|
})(b.GFX || (b.GFX = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
var k = b.Debug.assert, g = function() {
|
|
function b() {
|
|
this._count = 0;
|
|
this._head = this._tail = null;
|
|
}
|
|
Object.defineProperty(b.prototype, "count", {get:function() {
|
|
return this._count;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "head", {get:function() {
|
|
return this._head;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype._unshift = function(b) {
|
|
k(!b.next && !b.previous);
|
|
0 === this._count ? this._head = this._tail = b : (b.next = this._head, this._head = b.next.previous = b);
|
|
this._count++;
|
|
};
|
|
b.prototype._remove = function(b) {
|
|
k(0 < this._count);
|
|
b === this._head && b === this._tail ? this._head = this._tail = null : b === this._head ? (this._head = b.next, this._head.previous = null) : b == this._tail ? (this._tail = b.previous, this._tail.next = null) : (b.previous.next = b.next, b.next.previous = b.previous);
|
|
b.previous = b.next = null;
|
|
this._count--;
|
|
};
|
|
b.prototype.use = function(b) {
|
|
this._head !== b && ((b.next || b.previous || this._tail === b) && this._remove(b), this._unshift(b));
|
|
};
|
|
b.prototype.pop = function() {
|
|
if (!this._tail) {
|
|
return null;
|
|
}
|
|
var b = this._tail;
|
|
this._remove(b);
|
|
return b;
|
|
};
|
|
b.prototype.visit = function(b, f) {
|
|
"undefined" === typeof f && (f = !0);
|
|
for (var g = f ? this._head : this._tail;g && b(g);) {
|
|
g = f ? g.next : g.previous;
|
|
}
|
|
};
|
|
return b;
|
|
}();
|
|
b.LRUList = g;
|
|
})(Shumway || (Shumway = {}));
|
|
var Shumway$$inline_404 = Shumway || (Shumway = {}), GFX$$inline_405 = Shumway$$inline_404.GFX || (Shumway$$inline_404.GFX = {}), Option$$inline_406 = Shumway$$inline_404.Options.Option, OptionSet$$inline_407 = Shumway$$inline_404.Options.OptionSet, shumwayOptions$$inline_408 = Shumway$$inline_404.Settings.shumwayOptions, rendererOptions$$inline_409 = shumwayOptions$$inline_408.register(new OptionSet$$inline_407("Renderer Options"));
|
|
GFX$$inline_405.imageUpdateOption = rendererOptions$$inline_409.register(new Option$$inline_406("", "imageUpdate", "boolean", !0, "Enable image updating."));
|
|
GFX$$inline_405.imageConvertOption = rendererOptions$$inline_409.register(new Option$$inline_406("", "imageConvert", "boolean", !0, "Enable image conversion."));
|
|
GFX$$inline_405.stageOptions = shumwayOptions$$inline_408.register(new OptionSet$$inline_407("Stage Renderer Options"));
|
|
GFX$$inline_405.forcePaint = GFX$$inline_405.stageOptions.register(new Option$$inline_406("", "forcePaint", "boolean", !1, "Force repainting."));
|
|
GFX$$inline_405.ignoreViewport = GFX$$inline_405.stageOptions.register(new Option$$inline_406("", "ignoreViewport", "boolean", !1, "Cull elements outside of the viewport."));
|
|
GFX$$inline_405.viewportLoupeDiameter = GFX$$inline_405.stageOptions.register(new Option$$inline_406("", "viewportLoupeDiameter", "number", 256, "Size of the viewport loupe.", {range:{min:1, max:1024, step:1}}));
|
|
GFX$$inline_405.disableClipping = GFX$$inline_405.stageOptions.register(new Option$$inline_406("", "disableClipping", "boolean", !1, "Disable clipping."));
|
|
GFX$$inline_405.debugClipping = GFX$$inline_405.stageOptions.register(new Option$$inline_406("", "debugClipping", "boolean", !1, "Disable clipping."));
|
|
GFX$$inline_405.backend = GFX$$inline_405.stageOptions.register(new Option$$inline_406("", "backend", "number", 0, "Backends", {choices:{Canvas2D:0, WebGL:1, Both:2}}));
|
|
GFX$$inline_405.hud = GFX$$inline_405.stageOptions.register(new Option$$inline_406("", "hud", "boolean", !1, "Enable HUD."));
|
|
var webGLOptions$$inline_410 = GFX$$inline_405.stageOptions.register(new OptionSet$$inline_407("WebGL Options"));
|
|
GFX$$inline_405.perspectiveCamera = webGLOptions$$inline_410.register(new Option$$inline_406("", "pc", "boolean", !1, "Use perspective camera."));
|
|
GFX$$inline_405.perspectiveCameraFOV = webGLOptions$$inline_410.register(new Option$$inline_406("", "pcFOV", "number", 60, "Perspective Camera FOV."));
|
|
GFX$$inline_405.perspectiveCameraDistance = webGLOptions$$inline_410.register(new Option$$inline_406("", "pcDistance", "number", 2, "Perspective Camera Distance."));
|
|
GFX$$inline_405.perspectiveCameraAngle = webGLOptions$$inline_410.register(new Option$$inline_406("", "pcAngle", "number", 0, "Perspective Camera Angle."));
|
|
GFX$$inline_405.perspectiveCameraAngleRotate = webGLOptions$$inline_410.register(new Option$$inline_406("", "pcRotate", "boolean", !1, "Rotate Use perspective camera."));
|
|
GFX$$inline_405.perspectiveCameraSpacing = webGLOptions$$inline_410.register(new Option$$inline_406("", "pcSpacing", "number", .01, "Element Spacing."));
|
|
GFX$$inline_405.perspectiveCameraSpacingInflate = webGLOptions$$inline_410.register(new Option$$inline_406("", "pcInflate", "boolean", !1, "Rotate Use perspective camera."));
|
|
GFX$$inline_405.drawTiles = webGLOptions$$inline_410.register(new Option$$inline_406("", "drawTiles", "boolean", !1, "Draw WebGL Tiles"));
|
|
GFX$$inline_405.drawSurfaces = webGLOptions$$inline_410.register(new Option$$inline_406("", "drawSurfaces", "boolean", !1, "Draw WebGL Surfaces."));
|
|
GFX$$inline_405.drawSurface = webGLOptions$$inline_410.register(new Option$$inline_406("", "drawSurface", "number", -1, "Draw WebGL Surface #"));
|
|
GFX$$inline_405.drawElements = webGLOptions$$inline_410.register(new Option$$inline_406("", "drawElements", "boolean", !0, "Actually call gl.drawElements. This is useful to test if the GPU is the bottleneck."));
|
|
GFX$$inline_405.disableSurfaceUploads = webGLOptions$$inline_410.register(new Option$$inline_406("", "disableSurfaceUploads", "boolean", !1, "Disable surface uploads."));
|
|
GFX$$inline_405.premultipliedAlpha = webGLOptions$$inline_410.register(new Option$$inline_406("", "premultipliedAlpha", "boolean", !1, "Set the premultipliedAlpha flag on getContext()."));
|
|
GFX$$inline_405.unpackPremultiplyAlpha = webGLOptions$$inline_410.register(new Option$$inline_406("", "unpackPremultiplyAlpha", "boolean", !0, "Use UNPACK_PREMULTIPLY_ALPHA_WEBGL in pixelStorei."));
|
|
var factorChoices$$inline_411 = {ZERO:0, ONE:1, SRC_COLOR:768, ONE_MINUS_SRC_COLOR:769, DST_COLOR:774, ONE_MINUS_DST_COLOR:775, SRC_ALPHA:770, ONE_MINUS_SRC_ALPHA:771, DST_ALPHA:772, ONE_MINUS_DST_ALPHA:773, SRC_ALPHA_SATURATE:776, CONSTANT_COLOR:32769, ONE_MINUS_CONSTANT_COLOR:32770, CONSTANT_ALPHA:32771, ONE_MINUS_CONSTANT_ALPHA:32772};
|
|
GFX$$inline_405.sourceBlendFactor = webGLOptions$$inline_410.register(new Option$$inline_406("", "sourceBlendFactor", "number", factorChoices$$inline_411.ONE, "", {choices:factorChoices$$inline_411}));
|
|
GFX$$inline_405.destinationBlendFactor = webGLOptions$$inline_410.register(new Option$$inline_406("", "destinationBlendFactor", "number", factorChoices$$inline_411.ONE_MINUS_SRC_ALPHA, "", {choices:factorChoices$$inline_411}));
|
|
var canvas2DOptions$$inline_412 = GFX$$inline_405.stageOptions.register(new OptionSet$$inline_407("Canvas2D Options"));
|
|
GFX$$inline_405.clipDirtyRegions = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "clipDirtyRegions", "boolean", !1, "Clip dirty regions."));
|
|
GFX$$inline_405.clipCanvas = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "clipCanvas", "boolean", !1, "Clip Regions."));
|
|
GFX$$inline_405.cull = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "cull", "boolean", !1, "Enable culling."));
|
|
GFX$$inline_405.compositeMask = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "compositeMask", "boolean", !1, "Composite Mask."));
|
|
GFX$$inline_405.snapToDevicePixels = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "snapToDevicePixels", "boolean", !1, ""));
|
|
GFX$$inline_405.imageSmoothing = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "imageSmoothing", "boolean", !1, ""));
|
|
GFX$$inline_405.blending = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "blending", "boolean", !0, ""));
|
|
GFX$$inline_405.cacheShapes = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "cacheShapes", "boolean", !1, ""));
|
|
GFX$$inline_405.cacheShapesMaxSize = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "cacheShapesMaxSize", "number", 256, "", {range:{min:1, max:1024, step:1}}));
|
|
GFX$$inline_405.cacheShapesThreshold = canvas2DOptions$$inline_412.register(new Option$$inline_406("", "cacheShapesThreshold", "number", 256, "", {range:{min:1, max:1024, step:1}}));
|
|
var GFX$$inline_413 = Shumway$$inline_404.GFX;
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
function f(a, b, c, d) {
|
|
var e = 1 - d;
|
|
return a * e * e + 2 * b * e * d + c * d * d;
|
|
}
|
|
function t(a, b, c, d, e) {
|
|
var f = e * e, g = 1 - e, k = g * g;
|
|
return a * g * k + 3 * b * e * k + 3 * c * g * f + d * e * f;
|
|
}
|
|
var s = b.NumberUtilities.clamp, m = b.NumberUtilities.pow2, d = b.NumberUtilities.epsilonEquals, a = b.Debug.assert;
|
|
g.radianToDegrees = function(a) {
|
|
return 180 * a / Math.PI;
|
|
};
|
|
g.degreesToRadian = function(a) {
|
|
return a * Math.PI / 180;
|
|
};
|
|
g.quadraticBezier = f;
|
|
g.quadraticBezierExtreme = function(a, b, c) {
|
|
var d = (a - b) / (a - 2 * b + c);
|
|
return 0 > d ? a : 1 < d ? c : f(a, b, c, d);
|
|
};
|
|
g.cubicBezier = t;
|
|
g.cubicBezierExtremes = function(a, b, c, d) {
|
|
var e = b - a, f;
|
|
f = 2 * (c - b);
|
|
var g = d - c;
|
|
e + g === f && (g *= 1.0001);
|
|
var k = 2 * e - f, l = f - 2 * e, l = Math.sqrt(l * l - 4 * e * (e - f + g));
|
|
f = 2 * (e - f + g);
|
|
e = (k + l) / f;
|
|
k = (k - l) / f;
|
|
l = [];
|
|
0 <= e && 1 >= e && l.push(t(a, b, c, d, e));
|
|
0 <= k && 1 >= k && l.push(t(a, b, c, d, k));
|
|
return l;
|
|
};
|
|
var c = function() {
|
|
function a(b, c) {
|
|
this.x = b;
|
|
this.y = c;
|
|
}
|
|
a.prototype.setElements = function(a, b) {
|
|
this.x = a;
|
|
this.y = b;
|
|
return this;
|
|
};
|
|
a.prototype.set = function(a) {
|
|
this.x = a.x;
|
|
this.y = a.y;
|
|
return this;
|
|
};
|
|
a.prototype.dot = function(a) {
|
|
return this.x * a.x + this.y * a.y;
|
|
};
|
|
a.prototype.squaredLength = function() {
|
|
return this.dot(this);
|
|
};
|
|
a.prototype.distanceTo = function(a) {
|
|
return Math.sqrt(this.dot(a));
|
|
};
|
|
a.prototype.sub = function(a) {
|
|
this.x -= a.x;
|
|
this.y -= a.y;
|
|
return this;
|
|
};
|
|
a.prototype.mul = function(a) {
|
|
this.x *= a;
|
|
this.y *= a;
|
|
return this;
|
|
};
|
|
a.prototype.clone = function() {
|
|
return new a(this.x, this.y);
|
|
};
|
|
a.prototype.toString = function() {
|
|
return "{x: " + this.x + ", y: " + this.y + "}";
|
|
};
|
|
a.prototype.inTriangle = function(a, b, c) {
|
|
var d = a.y * c.x - a.x * c.y + (c.y - a.y) * this.x + (a.x - c.x) * this.y, e = a.x * b.y - a.y * b.x + (a.y - b.y) * this.x + (b.x - a.x) * this.y;
|
|
if (0 > d != 0 > e) {
|
|
return!1;
|
|
}
|
|
a = -b.y * c.x + a.y * (c.x - b.x) + a.x * (b.y - c.y) + b.x * c.y;
|
|
0 > a && (d = -d, e = -e, a = -a);
|
|
return 0 < d && 0 < e && d + e < a;
|
|
};
|
|
a.createEmpty = function() {
|
|
return new a(0, 0);
|
|
};
|
|
a.createEmptyPoints = function(b) {
|
|
for (var c = [], d = 0;d < b;d++) {
|
|
c.push(new a(0, 0));
|
|
}
|
|
return c;
|
|
};
|
|
return a;
|
|
}();
|
|
g.Point = c;
|
|
var n = function() {
|
|
function a(b, c, d) {
|
|
this.x = b;
|
|
this.y = c;
|
|
this.z = d;
|
|
}
|
|
a.prototype.setElements = function(a, b, c) {
|
|
this.x = a;
|
|
this.y = b;
|
|
this.z = c;
|
|
return this;
|
|
};
|
|
a.prototype.set = function(a) {
|
|
this.x = a.x;
|
|
this.y = a.y;
|
|
this.z = a.z;
|
|
return this;
|
|
};
|
|
a.prototype.dot = function(a) {
|
|
return this.x * a.x + this.y * a.y + this.z * a.z;
|
|
};
|
|
a.prototype.cross = function(a) {
|
|
var b = this.z * a.x - this.x * a.z, c = this.x * a.y - this.y * a.x;
|
|
this.x = this.y * a.z - this.z * a.y;
|
|
this.y = b;
|
|
this.z = c;
|
|
return this;
|
|
};
|
|
a.prototype.squaredLength = function() {
|
|
return this.dot(this);
|
|
};
|
|
a.prototype.sub = function(a) {
|
|
this.x -= a.x;
|
|
this.y -= a.y;
|
|
this.z -= a.z;
|
|
return this;
|
|
};
|
|
a.prototype.mul = function(a) {
|
|
this.x *= a;
|
|
this.y *= a;
|
|
this.z *= a;
|
|
return this;
|
|
};
|
|
a.prototype.normalize = function() {
|
|
var a = Math.sqrt(this.squaredLength());
|
|
1E-5 < a ? this.mul(1 / a) : this.setElements(0, 0, 0);
|
|
return this;
|
|
};
|
|
a.prototype.clone = function() {
|
|
return new a(this.x, this.y, this.z);
|
|
};
|
|
a.prototype.toString = function() {
|
|
return "{x: " + this.x + ", y: " + this.y + ", z: " + this.z + "}";
|
|
};
|
|
a.createEmpty = function() {
|
|
return new a(0, 0, 0);
|
|
};
|
|
a.createEmptyPoints = function(b) {
|
|
for (var c = [], d = 0;d < b;d++) {
|
|
c.push(new a(0, 0, 0));
|
|
}
|
|
return c;
|
|
};
|
|
return a;
|
|
}();
|
|
g.Point3D = n;
|
|
var p = function() {
|
|
function a(b, c, d, e) {
|
|
this.setElements(b, c, d, e);
|
|
}
|
|
a.prototype.setElements = function(a, b, c, d) {
|
|
this.x = a;
|
|
this.y = b;
|
|
this.w = c;
|
|
this.h = d;
|
|
};
|
|
a.prototype.set = function(a) {
|
|
this.x = a.x;
|
|
this.y = a.y;
|
|
this.w = a.w;
|
|
this.h = a.h;
|
|
};
|
|
a.prototype.contains = function(a) {
|
|
var b = a.x + a.w, c = a.y + a.h, d = this.x + this.w, e = this.y + this.h;
|
|
return a.x >= this.x && a.x < d && a.y >= this.y && a.y < e && b > this.x && b <= d && c > this.y && c <= e;
|
|
};
|
|
a.prototype.containsPoint = function(a) {
|
|
return a.x >= this.x && a.x < this.x + this.w && a.y >= this.y && a.y < this.y + this.h;
|
|
};
|
|
a.prototype.isContained = function(a) {
|
|
for (var b = 0;b < a.length;b++) {
|
|
if (a[b].contains(this)) {
|
|
return!0;
|
|
}
|
|
}
|
|
return!1;
|
|
};
|
|
a.prototype.isSmallerThan = function(a) {
|
|
return this.w < a.w && this.h < a.h;
|
|
};
|
|
a.prototype.isLargerThan = function(a) {
|
|
return this.w > a.w && this.h > a.h;
|
|
};
|
|
a.prototype.union = function(a) {
|
|
if (this.isEmpty()) {
|
|
this.set(a);
|
|
} else {
|
|
var b = this.x, c = this.y;
|
|
this.x > a.x && (b = a.x);
|
|
this.y > a.y && (c = a.y);
|
|
var d = this.x + this.w;
|
|
d < a.x + a.w && (d = a.x + a.w);
|
|
var e = this.y + this.h;
|
|
e < a.y + a.h && (e = a.y + a.h);
|
|
this.x = b;
|
|
this.y = c;
|
|
this.w = d - b;
|
|
this.h = e - c;
|
|
}
|
|
};
|
|
a.prototype.isEmpty = function() {
|
|
return 0 >= this.w || 0 >= this.h;
|
|
};
|
|
a.prototype.setEmpty = function() {
|
|
this.h = this.w = 0;
|
|
};
|
|
a.prototype.intersect = function(b) {
|
|
var c = a.createEmpty();
|
|
if (this.isEmpty() || b.isEmpty()) {
|
|
return c.setEmpty(), c;
|
|
}
|
|
c.x = Math.max(this.x, b.x);
|
|
c.y = Math.max(this.y, b.y);
|
|
c.w = Math.min(this.x + this.w, b.x + b.w) - c.x;
|
|
c.h = Math.min(this.y + this.h, b.y + b.h) - c.y;
|
|
c.isEmpty() && c.setEmpty();
|
|
this.set(c);
|
|
};
|
|
a.prototype.intersects = function(a) {
|
|
if (this.isEmpty() || a.isEmpty()) {
|
|
return!1;
|
|
}
|
|
var b = Math.max(this.x, a.x), c = Math.max(this.y, a.y), b = Math.min(this.x + this.w, a.x + a.w) - b;
|
|
a = Math.min(this.y + this.h, a.y + a.h) - c;
|
|
return!(0 >= b || 0 >= a);
|
|
};
|
|
a.prototype.intersectsTransformedAABB = function(b, c) {
|
|
var d = a._temporary;
|
|
d.set(b);
|
|
c.transformRectangleAABB(d);
|
|
return this.intersects(d);
|
|
};
|
|
a.prototype.intersectsTranslated = function(a, b, c) {
|
|
if (this.isEmpty() || a.isEmpty()) {
|
|
return!1;
|
|
}
|
|
var d = Math.max(this.x, a.x + b), e = Math.max(this.y, a.y + c);
|
|
b = Math.min(this.x + this.w, a.x + b + a.w) - d;
|
|
a = Math.min(this.y + this.h, a.y + c + a.h) - e;
|
|
return!(0 >= b || 0 >= a);
|
|
};
|
|
a.prototype.area = function() {
|
|
return this.w * this.h;
|
|
};
|
|
a.prototype.clone = function() {
|
|
return new a(this.x, this.y, this.w, this.h);
|
|
};
|
|
a.prototype.snap = function() {
|
|
var a = Math.ceil(this.x + this.w), b = Math.ceil(this.y + this.h);
|
|
this.x = Math.floor(this.x);
|
|
this.y = Math.floor(this.y);
|
|
this.w = a - this.x;
|
|
this.h = b - this.y;
|
|
return this;
|
|
};
|
|
a.prototype.scale = function(a, b) {
|
|
this.x *= a;
|
|
this.y *= b;
|
|
this.w *= a;
|
|
this.h *= b;
|
|
return this;
|
|
};
|
|
a.prototype.offset = function(a, b) {
|
|
this.x += a;
|
|
this.y += b;
|
|
return this;
|
|
};
|
|
a.prototype.resize = function(a, b) {
|
|
this.w += a;
|
|
this.h += b;
|
|
return this;
|
|
};
|
|
a.prototype.expand = function(a, b) {
|
|
this.offset(-a, -b).resize(2 * a, 2 * b);
|
|
return this;
|
|
};
|
|
a.prototype.getCenter = function() {
|
|
return new c(this.x + this.w / 2, this.y + this.h / 2);
|
|
};
|
|
a.prototype.getAbsoluteBounds = function() {
|
|
return new a(0, 0, this.w, this.h);
|
|
};
|
|
a.prototype.toString = function() {
|
|
return "{" + this.x + ", " + this.y + ", " + this.w + ", " + this.h + "}";
|
|
};
|
|
a.createEmpty = function() {
|
|
return new a(0, 0, 0, 0);
|
|
};
|
|
a.createSquare = function() {
|
|
return new a(-512, -512, 1024, 1024);
|
|
};
|
|
a.createMaxI16 = function() {
|
|
return new a(b.Numbers.MinI16, b.Numbers.MinI16, 65535, 65535);
|
|
};
|
|
a.prototype.getCorners = function(a) {
|
|
a[0].x = this.x;
|
|
a[0].y = this.y;
|
|
a[1].x = this.x + this.w;
|
|
a[1].y = this.y;
|
|
a[2].x = this.x + this.w;
|
|
a[2].y = this.y + this.h;
|
|
a[3].x = this.x;
|
|
a[3].y = this.y + this.h;
|
|
};
|
|
a._temporary = a.createEmpty();
|
|
return a;
|
|
}();
|
|
g.Rectangle = p;
|
|
var e = function() {
|
|
function a(b) {
|
|
this.corners = b.map(function(a) {
|
|
return a.clone();
|
|
});
|
|
this.axes = [b[1].clone().sub(b[0]), b[3].clone().sub(b[0])];
|
|
this.origins = [];
|
|
for (var c = 0;2 > c;c++) {
|
|
this.axes[c].mul(1 / this.axes[c].squaredLength()), this.origins.push(b[0].dot(this.axes[c]));
|
|
}
|
|
}
|
|
a.prototype.getBounds = function() {
|
|
return a.getBounds(this.corners);
|
|
};
|
|
a.getBounds = function(a) {
|
|
for (var b = new c(Number.MAX_VALUE, Number.MAX_VALUE), d = new c(Number.MIN_VALUE, Number.MIN_VALUE), e = 0;4 > e;e++) {
|
|
var f = a[e].x, g = a[e].y;
|
|
b.x = Math.min(b.x, f);
|
|
b.y = Math.min(b.y, g);
|
|
d.x = Math.max(d.x, f);
|
|
d.y = Math.max(d.y, g);
|
|
}
|
|
return new p(b.x, b.y, d.x - b.x, d.y - b.y);
|
|
};
|
|
a.prototype.intersects = function(a) {
|
|
return this.intersectsOneWay(a) && a.intersectsOneWay(this);
|
|
};
|
|
a.prototype.intersectsOneWay = function(a) {
|
|
for (var b = 0;2 > b;b++) {
|
|
for (var c = 0;4 > c;c++) {
|
|
var d = a.corners[c].dot(this.axes[b]), e, f;
|
|
0 === c ? f = e = d : d < e ? e = d : d > f && (f = d);
|
|
}
|
|
if (e > 1 + this.origins[b] || f < this.origins[b]) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
return a;
|
|
}();
|
|
g.OBB = e;
|
|
var q = function() {
|
|
function a(b, c, d, e, f, g) {
|
|
this._data = new Float64Array(6);
|
|
this.setElements(b, c, d, e, f, g);
|
|
}
|
|
Object.defineProperty(a.prototype, "a", {get:function() {
|
|
return this._data[0];
|
|
}, set:function(a) {
|
|
this._data[0] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "b", {get:function() {
|
|
return this._data[1];
|
|
}, set:function(a) {
|
|
this._data[1] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "c", {get:function() {
|
|
return this._data[2];
|
|
}, set:function(a) {
|
|
this._data[2] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "d", {get:function() {
|
|
return this._data[3];
|
|
}, set:function(a) {
|
|
this._data[3] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "tx", {get:function() {
|
|
return this._data[4];
|
|
}, set:function(a) {
|
|
this._data[4] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "ty", {get:function() {
|
|
return this._data[5];
|
|
}, set:function(a) {
|
|
this._data[5] = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.setElements = function(a, b, c, d, e, f) {
|
|
var g = this._data;
|
|
g[0] = a;
|
|
g[1] = b;
|
|
g[2] = c;
|
|
g[3] = d;
|
|
g[4] = e;
|
|
g[5] = f;
|
|
};
|
|
a.prototype.set = function(a) {
|
|
var b = this._data;
|
|
a = a._data;
|
|
b[0] = a[0];
|
|
b[1] = a[1];
|
|
b[2] = a[2];
|
|
b[3] = a[3];
|
|
b[4] = a[4];
|
|
b[5] = a[5];
|
|
};
|
|
a.prototype.emptyArea = function(a) {
|
|
a = this._data;
|
|
return 0 === a[0] || 0 === a[3] ? !0 : !1;
|
|
};
|
|
a.prototype.infiniteArea = function(a) {
|
|
a = this._data;
|
|
return Infinity === Math.abs(a[0]) || Infinity === Math.abs(a[3]) ? !0 : !1;
|
|
};
|
|
a.prototype.isEqual = function(a) {
|
|
var b = this._data;
|
|
a = a._data;
|
|
return b[0] === a[0] && b[1] === a[1] && b[2] === a[2] && b[3] === a[3] && b[4] === a[4] && b[5] === a[5];
|
|
};
|
|
a.prototype.clone = function() {
|
|
var b = this._data;
|
|
return new a(b[0], b[1], b[2], b[3], b[4], b[5]);
|
|
};
|
|
a.prototype.transform = function(a, b, c, d, e, f) {
|
|
var g = this._data, k = g[0], l = g[1], m = g[2], n = g[3], r = g[4], p = g[5];
|
|
g[0] = k * a + m * b;
|
|
g[1] = l * a + n * b;
|
|
g[2] = k * c + m * d;
|
|
g[3] = l * c + n * d;
|
|
g[4] = k * e + m * f + r;
|
|
g[5] = l * e + n * f + p;
|
|
return this;
|
|
};
|
|
a.prototype.transformRectangle = function(a, b) {
|
|
var c = this._data, d = c[0], e = c[1], f = c[2], g = c[3], k = c[4], c = c[5], l = a.x, m = a.y, n = a.w, r = a.h;
|
|
b[0].x = d * l + f * m + k;
|
|
b[0].y = e * l + g * m + c;
|
|
b[1].x = d * (l + n) + f * m + k;
|
|
b[1].y = e * (l + n) + g * m + c;
|
|
b[2].x = d * (l + n) + f * (m + r) + k;
|
|
b[2].y = e * (l + n) + g * (m + r) + c;
|
|
b[3].x = d * l + f * (m + r) + k;
|
|
b[3].y = e * l + g * (m + r) + c;
|
|
};
|
|
a.prototype.isTranslationOnly = function() {
|
|
var a = this._data;
|
|
return 1 === a[0] && 0 === a[1] && 0 === a[2] && 1 === a[3] || d(a[0], 1) && d(a[1], 0) && d(a[2], 0) && d(a[3], 1) ? !0 : !1;
|
|
};
|
|
a.prototype.transformRectangleAABB = function(a) {
|
|
var b = this._data, c = b[0], d = b[1], e = b[2], f = b[3], g = b[4], k = b[5], l = a.x, m = a.y, n = a.w, r = a.h, b = c * l + e * m + g, p = d * l + f * m + k, q = c * (l + n) + e * m + g, u = d * (l + n) + f * m + k, s = c * (l + n) + e * (m + r) + g, n = d * (l + n) + f * (m + r) + k, c = c * l + e * (m + r) + g, d = d * l + f * (m + r) + k, f = 0;
|
|
b > q && (f = b, b = q, q = f);
|
|
s > c && (f = s, s = c, c = f);
|
|
a.x = b < s ? b : s;
|
|
a.w = (q > c ? q : c) - a.x;
|
|
p > u && (f = p, p = u, u = f);
|
|
n > d && (f = n, n = d, d = f);
|
|
a.y = p < n ? p : n;
|
|
a.h = (u > d ? u : d) - a.y;
|
|
};
|
|
a.prototype.scale = function(a, b) {
|
|
var c = this._data;
|
|
c[0] *= a;
|
|
c[1] *= b;
|
|
c[2] *= a;
|
|
c[3] *= b;
|
|
c[4] *= a;
|
|
c[5] *= b;
|
|
return this;
|
|
};
|
|
a.prototype.scaleClone = function(a, b) {
|
|
return 1 === a && 1 === b ? this : this.clone().scale(a, b);
|
|
};
|
|
a.prototype.rotate = function(a) {
|
|
var b = this._data, c = b[0], d = b[1], e = b[2], f = b[3], g = b[4], k = b[5], l = Math.cos(a);
|
|
a = Math.sin(a);
|
|
b[0] = l * c - a * d;
|
|
b[1] = a * c + l * d;
|
|
b[2] = l * e - a * f;
|
|
b[3] = a * e + l * f;
|
|
b[4] = l * g - a * k;
|
|
b[5] = a * g + l * k;
|
|
return this;
|
|
};
|
|
a.prototype.concat = function(a) {
|
|
var b = this._data;
|
|
a = a._data;
|
|
var c = b[0] * a[0], d = 0, e = 0, f = b[3] * a[3], g = b[4] * a[0] + a[4], k = b[5] * a[3] + a[5];
|
|
if (0 !== b[1] || 0 !== b[2] || 0 !== a[1] || 0 !== a[2]) {
|
|
c += b[1] * a[2], f += b[2] * a[1], d += b[0] * a[1] + b[1] * a[3], e += b[2] * a[0] + b[3] * a[2], g += b[5] * a[2], k += b[4] * a[1];
|
|
}
|
|
b[0] = c;
|
|
b[1] = d;
|
|
b[2] = e;
|
|
b[3] = f;
|
|
b[4] = g;
|
|
b[5] = k;
|
|
};
|
|
a.prototype.preMultiply = function(a) {
|
|
var b = this._data;
|
|
a = a._data;
|
|
var c = a[0] * b[0], d = 0, e = 0, f = a[3] * b[3], g = a[4] * b[0] + b[4], k = a[5] * b[3] + b[5];
|
|
if (0 !== a[1] || 0 !== a[2] || 0 !== b[1] || 0 !== b[2]) {
|
|
c += a[1] * b[2], f += a[2] * b[1], d += a[0] * b[1] + a[1] * b[3], e += a[2] * b[0] + a[3] * b[2], g += a[5] * b[2], k += a[4] * b[1];
|
|
}
|
|
b[0] = c;
|
|
b[1] = d;
|
|
b[2] = e;
|
|
b[3] = f;
|
|
b[4] = g;
|
|
b[5] = k;
|
|
};
|
|
a.prototype.translate = function(a, b) {
|
|
var c = this._data;
|
|
c[4] += a;
|
|
c[5] += b;
|
|
return this;
|
|
};
|
|
a.prototype.setIdentity = function() {
|
|
var a = this._data;
|
|
a[0] = 1;
|
|
a[1] = 0;
|
|
a[2] = 0;
|
|
a[3] = 1;
|
|
a[4] = 0;
|
|
a[5] = 0;
|
|
};
|
|
a.prototype.isIdentity = function() {
|
|
var a = this._data;
|
|
return 1 === a[0] && 0 === a[1] && 0 === a[2] && 1 === a[3] && 0 === a[4] && 0 === a[5];
|
|
};
|
|
a.prototype.transformPoint = function(a) {
|
|
var b = this._data, c = a.x, d = a.y;
|
|
a.x = b[0] * c + b[2] * d + b[4];
|
|
a.y = b[1] * c + b[3] * d + b[5];
|
|
};
|
|
a.prototype.transformPoints = function(a) {
|
|
for (var b = 0;b < a.length;b++) {
|
|
this.transformPoint(a[b]);
|
|
}
|
|
};
|
|
a.prototype.deltaTransformPoint = function(a) {
|
|
var b = this._data, c = a.x, d = a.y;
|
|
a.x = b[0] * c + b[2] * d;
|
|
a.y = b[1] * c + b[3] * d;
|
|
};
|
|
a.prototype.inverse = function(a) {
|
|
var b = this._data, c = a._data, d = b[1], e = b[2], f = b[4], g = b[5];
|
|
if (0 === d && 0 === e) {
|
|
var k = c[0] = 1 / b[0], b = c[3] = 1 / b[3];
|
|
c[1] = 0;
|
|
c[2] = 0;
|
|
c[4] = -k * f;
|
|
c[5] = -b * g;
|
|
} else {
|
|
var k = b[0], b = b[3], l = k * b - d * e;
|
|
0 === l ? a.setIdentity() : (l = 1 / l, c[0] = b * l, d = c[1] = -d * l, e = c[2] = -e * l, b = c[3] = k * l, c[4] = -(c[0] * f + e * g), c[5] = -(d * f + b * g));
|
|
}
|
|
};
|
|
a.prototype.getTranslateX = function() {
|
|
return this._data[4];
|
|
};
|
|
a.prototype.getTranslateY = function() {
|
|
return this._data[4];
|
|
};
|
|
a.prototype.getScaleX = function() {
|
|
var a = this._data;
|
|
if (1 === a[0] && 0 === a[1]) {
|
|
return 1;
|
|
}
|
|
var b = Math.sqrt(a[0] * a[0] + a[1] * a[1]);
|
|
return 0 < a[0] ? b : -b;
|
|
};
|
|
a.prototype.getScaleY = function() {
|
|
var a = this._data;
|
|
if (0 === a[2] && 1 === a[3]) {
|
|
return 1;
|
|
}
|
|
var b = Math.sqrt(a[2] * a[2] + a[3] * a[3]);
|
|
return 0 < a[3] ? b : -b;
|
|
};
|
|
a.prototype.getAbsoluteScaleX = function() {
|
|
return Math.abs(this.getScaleX());
|
|
};
|
|
a.prototype.getAbsoluteScaleY = function() {
|
|
return Math.abs(this.getScaleY());
|
|
};
|
|
a.prototype.getRotation = function() {
|
|
var a = this._data;
|
|
return 180 * Math.atan(a[1] / a[0]) / Math.PI;
|
|
};
|
|
a.prototype.isScaleOrRotation = function() {
|
|
var a = this._data;
|
|
return.01 > Math.abs(a[0] * a[2] + a[1] * a[3]);
|
|
};
|
|
a.prototype.toString = function() {
|
|
var a = this._data;
|
|
return "{" + a[0] + ", " + a[1] + ", " + a[2] + ", " + a[3] + ", " + a[4] + ", " + a[5] + "}";
|
|
};
|
|
a.prototype.toWebGLMatrix = function() {
|
|
var a = this._data;
|
|
return new Float32Array([a[0], a[1], 0, a[2], a[3], 0, a[4], a[5], 1]);
|
|
};
|
|
a.prototype.toCSSTransform = function() {
|
|
var a = this._data;
|
|
return "matrix(" + a[0] + ", " + a[1] + ", " + a[2] + ", " + a[3] + ", " + a[4] + ", " + a[5] + ")";
|
|
};
|
|
a.createIdentity = function() {
|
|
return new a(1, 0, 0, 1, 0, 0);
|
|
};
|
|
a.prototype.toSVGMatrix = function() {
|
|
var b = this._data, c = a._svg.createSVGMatrix();
|
|
c.a = b[0];
|
|
c.b = b[1];
|
|
c.c = b[2];
|
|
c.d = b[3];
|
|
c.e = b[4];
|
|
c.f = b[5];
|
|
return c;
|
|
};
|
|
a.prototype.snap = function() {
|
|
var a = this._data;
|
|
return this.isTranslationOnly() ? (a[0] = 1, a[1] = 0, a[2] = 0, a[3] = 1, a[4] = Math.round(a[4]), a[5] = Math.round(a[5]), !0) : !1;
|
|
};
|
|
a.createIdentitySVGMatrix = function() {
|
|
return a._svg.createSVGMatrix();
|
|
};
|
|
a.createSVGMatrixFromArray = function(b) {
|
|
var c = a._svg.createSVGMatrix();
|
|
c.a = b[0];
|
|
c.b = b[1];
|
|
c.c = b[2];
|
|
c.d = b[3];
|
|
c.e = b[4];
|
|
c.f = b[5];
|
|
return c;
|
|
};
|
|
a._svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
a.multiply = function(a, b) {
|
|
var c = b._data;
|
|
a.transform(c[0], c[1], c[2], c[3], c[4], c[5]);
|
|
};
|
|
return a;
|
|
}();
|
|
g.Matrix = q;
|
|
q = function() {
|
|
function a(b) {
|
|
this._m = new Float32Array(b);
|
|
}
|
|
a.prototype.asWebGLMatrix = function() {
|
|
return this._m;
|
|
};
|
|
a.createCameraLookAt = function(b, c, d) {
|
|
c = b.clone().sub(c).normalize();
|
|
d = d.clone().cross(c).normalize();
|
|
var e = c.clone().cross(d);
|
|
return new a([d.x, d.y, d.z, 0, e.x, e.y, e.z, 0, c.x, c.y, c.z, 0, b.x, b.y, b.z, 1]);
|
|
};
|
|
a.createLookAt = function(b, c, d) {
|
|
c = b.clone().sub(c).normalize();
|
|
d = d.clone().cross(c).normalize();
|
|
var e = c.clone().cross(d);
|
|
return new a([d.x, e.x, c.x, 0, e.x, e.y, c.y, 0, c.x, e.z, c.z, 0, -d.dot(b), -e.dot(b), -c.dot(b), 1]);
|
|
};
|
|
a.prototype.mul = function(a) {
|
|
a = [a.x, a.y, a.z, 0];
|
|
for (var b = this._m, c = [], d = 0;4 > d;d++) {
|
|
c[d] = 0;
|
|
for (var e = 4 * d, f = 0;4 > f;f++) {
|
|
c[d] += b[e + f] * a[f];
|
|
}
|
|
}
|
|
return new n(c[0], c[1], c[2]);
|
|
};
|
|
a.create2DProjection = function(b, c, d) {
|
|
return new a([2 / b, 0, 0, 0, 0, -2 / c, 0, 0, 0, 0, 2 / d, 0, -1, 1, 0, 1]);
|
|
};
|
|
a.createPerspective = function(b, c, d, e) {
|
|
b = Math.tan(.5 * Math.PI - .5 * b);
|
|
var f = 1 / (d - e);
|
|
return new a([b / c, 0, 0, 0, 0, b, 0, 0, 0, 0, (d + e) * f, -1, 0, 0, d * e * f * 2, 0]);
|
|
};
|
|
a.createIdentity = function() {
|
|
return a.createTranslation();
|
|
};
|
|
a.createTranslation = function() {
|
|
return new a([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
};
|
|
a.createXRotation = function(b) {
|
|
var c = Math.cos(b);
|
|
b = Math.sin(b);
|
|
return new a([1, 0, 0, 0, 0, c, b, 0, 0, -b, c, 0, 0, 0, 0, 1]);
|
|
};
|
|
a.createYRotation = function(b) {
|
|
var c = Math.cos(b);
|
|
b = Math.sin(b);
|
|
return new a([c, 0, -b, 0, 0, 1, 0, 0, b, 0, c, 0, 0, 0, 0, 1]);
|
|
};
|
|
a.createZRotation = function(b) {
|
|
var c = Math.cos(b);
|
|
b = Math.sin(b);
|
|
return new a([c, b, 0, 0, -b, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
};
|
|
a.createScale = function(b, c, d) {
|
|
return new a([b, 0, 0, 0, 0, c, 0, 0, 0, 0, d, 0, 0, 0, 0, 1]);
|
|
};
|
|
a.createMultiply = function(b, c) {
|
|
var d = b._m, e = c._m, f = d[0], g = d[1], k = d[2], l = d[3], m = d[4], n = d[5], p = d[6], q = d[7], u = d[8], s = d[9], w = d[10], t = d[11], L = d[12], M = d[13], V = d[14], d = d[15], Q = e[0], U = e[1], S = e[2], aa = e[3], $ = e[4], ea = e[5], Z = e[6], v = e[7], X = e[8], ba = e[9], R = e[10], H = e[11], Y = e[12], ga = e[13], ca = e[14], e = e[15];
|
|
return new a([f * Q + g * $ + k * X + l * Y, f * U + g * ea + k * ba + l * ga, f * S + g * Z + k * R + l * ca, f * aa + g * v + k * H + l * e, m * Q + n * $ + p * X + q * Y, m * U + n * ea + p * ba + q * ga, m * S + n * Z + p * R + q * ca, m * aa + n * v + p * H + q * e, u * Q + s * $ + w * X + t * Y, u * U + s * ea + w * ba + t * ga, u * S + s * Z + w * R + t * ca, u * aa + s * v + w * H + t * e, L * Q + M * $ + V * X + d * Y, L * U + M * ea + V * ba + d * ga, L * S + M * Z + V * R + d *
|
|
ca, L * aa + M * v + V * H + d * e]);
|
|
};
|
|
a.createInverse = function(b) {
|
|
var c = b._m;
|
|
b = c[0];
|
|
var d = c[1], e = c[2], f = c[3], g = c[4], k = c[5], l = c[6], m = c[7], n = c[8], p = c[9], q = c[10], u = c[11], s = c[12], w = c[13], t = c[14], c = c[15], L = q * c, M = t * u, V = l * c, Q = t * m, U = l * u, S = q * m, aa = e * c, $ = t * f, ea = e * u, Z = q * f, v = e * m, X = l * f, ba = n * w, R = s * p, H = g * w, Y = s * k, ga = g * p, ca = n * k, ka = b * w, W = s * d, ha = b * p, da = n * d, ja = b * k, N = g * d, ma = L * k + Q * p + U * w - (M * k + V * p + S * w), T =
|
|
M * d + aa * p + Z * w - (L * d + $ * p + ea * w), w = V * d + $ * k + v * w - (Q * d + aa * k + X * w), d = S * d + ea * k + X * p - (U * d + Z * k + v * p), k = 1 / (b * ma + g * T + n * w + s * d);
|
|
return new a([k * ma, k * T, k * w, k * d, k * (M * g + V * n + S * s - (L * g + Q * n + U * s)), k * (L * b + $ * n + ea * s - (M * b + aa * n + Z * s)), k * (Q * b + aa * g + X * s - (V * b + $ * g + v * s)), k * (U * b + Z * g + v * n - (S * b + ea * g + X * n)), k * (ba * m + Y * u + ga * c - (R * m + H * u + ca * c)), k * (R * f + ka * u + da * c - (ba * f + W * u + ha * c)), k * (H * f + W * m + ja * c - (Y * f + ka * m + N * c)), k * (ca * f + ha * m + N * u - (ga * f + da * m +
|
|
ja * u)), k * (H * q + ca * t + R * l - (ga * t + ba * l + Y * q)), k * (ha * t + ba * e + W * q - (ka * q + da * t + R * e)), k * (ka * l + N * t + Y * e - (ja * t + H * e + W * l)), k * (ja * q + ga * e + da * l - (ha * l + N * q + ca * e))]);
|
|
};
|
|
return a;
|
|
}();
|
|
g.Matrix3D = q;
|
|
q = function() {
|
|
function a(b, c, d) {
|
|
"undefined" === typeof d && (d = 7);
|
|
var e = this.size = 1 << d;
|
|
this.sizeInBits = d;
|
|
this.w = b;
|
|
this.h = c;
|
|
this.c = Math.ceil(b / e);
|
|
this.r = Math.ceil(c / e);
|
|
this.grid = [];
|
|
for (b = 0;b < this.r;b++) {
|
|
for (this.grid.push([]), c = 0;c < this.c;c++) {
|
|
this.grid[b][c] = new a.Cell(new p(c * e, b * e, e, e));
|
|
}
|
|
}
|
|
}
|
|
a.prototype.clear = function() {
|
|
for (var a = 0;a < this.r;a++) {
|
|
for (var b = 0;b < this.c;b++) {
|
|
this.grid[a][b].clear();
|
|
}
|
|
}
|
|
};
|
|
a.prototype.getBounds = function() {
|
|
return new p(0, 0, this.w, this.h);
|
|
};
|
|
a.prototype.addDirtyRectangle = function(a) {
|
|
var b = a.x >> this.sizeInBits, c = a.y >> this.sizeInBits;
|
|
if (!(b >= this.c || c >= this.r)) {
|
|
0 > b && (b = 0);
|
|
0 > c && (c = 0);
|
|
var d = this.grid[c][b];
|
|
a = a.clone();
|
|
a.snap();
|
|
if (d.region.contains(a)) {
|
|
d.bounds.isEmpty() ? d.bounds.set(a) : d.bounds.contains(a) || d.bounds.union(a);
|
|
} else {
|
|
for (var e = Math.min(this.c, Math.ceil((a.x + a.w) / this.size)) - b, f = Math.min(this.r, Math.ceil((a.y + a.h) / this.size)) - c, g = 0;g < e;g++) {
|
|
for (var k = 0;k < f;k++) {
|
|
d = this.grid[c + k][b + g], d = d.region.clone(), d.intersect(a), d.isEmpty() || this.addDirtyRectangle(d);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
a.prototype.gatherRegions = function(a) {
|
|
for (var b = 0;b < this.r;b++) {
|
|
for (var c = 0;c < this.c;c++) {
|
|
this.grid[b][c].bounds.isEmpty() || a.push(this.grid[b][c].bounds);
|
|
}
|
|
}
|
|
};
|
|
a.prototype.gatherOptimizedRegions = function(a) {
|
|
this.gatherRegions(a);
|
|
};
|
|
a.prototype.getDirtyRatio = function() {
|
|
var a = this.w * this.h;
|
|
if (0 === a) {
|
|
return 0;
|
|
}
|
|
for (var b = 0, c = 0;c < this.r;c++) {
|
|
for (var d = 0;d < this.c;d++) {
|
|
b += this.grid[c][d].region.area();
|
|
}
|
|
}
|
|
return b / a;
|
|
};
|
|
a.prototype.render = function(a, b) {
|
|
function c(b) {
|
|
a.rect(b.x, b.y, b.w, b.h);
|
|
}
|
|
if (b && b.drawGrid) {
|
|
a.strokeStyle = "white";
|
|
for (var d = 0;d < this.r;d++) {
|
|
for (var e = 0;e < this.c;e++) {
|
|
var f = this.grid[d][e];
|
|
a.beginPath();
|
|
c(f.region);
|
|
a.closePath();
|
|
a.stroke();
|
|
}
|
|
}
|
|
}
|
|
a.strokeStyle = "#E0F8D8";
|
|
for (d = 0;d < this.r;d++) {
|
|
for (e = 0;e < this.c;e++) {
|
|
f = this.grid[d][e], a.beginPath(), c(f.bounds), a.closePath(), a.stroke();
|
|
}
|
|
}
|
|
};
|
|
a.tmpRectangle = p.createEmpty();
|
|
return a;
|
|
}();
|
|
g.DirtyRegion = q;
|
|
(function(a) {
|
|
var b = function() {
|
|
function a(b) {
|
|
this.region = b;
|
|
this.bounds = p.createEmpty();
|
|
}
|
|
a.prototype.clear = function() {
|
|
this.bounds.setEmpty();
|
|
};
|
|
return a;
|
|
}();
|
|
a.Cell = b;
|
|
})(g.DirtyRegion || (g.DirtyRegion = {}));
|
|
var q = g.DirtyRegion, l = function() {
|
|
function a(b, c, d, e, f, g) {
|
|
this.index = b;
|
|
this.x = c;
|
|
this.y = d;
|
|
this.scale = g;
|
|
this.bounds = new p(c * e, d * f, e, f);
|
|
}
|
|
a.prototype.getOBB = function() {
|
|
if (this._obb) {
|
|
return this._obb;
|
|
}
|
|
this.bounds.getCorners(a.corners);
|
|
return this._obb = new e(a.corners);
|
|
};
|
|
a.corners = c.createEmptyPoints(4);
|
|
return a;
|
|
}();
|
|
g.Tile = l;
|
|
var u = function() {
|
|
function b(c, d, e, f, g) {
|
|
this.tileW = e;
|
|
this.tileH = f;
|
|
this.scale = g;
|
|
this.w = c;
|
|
this.h = d;
|
|
this.rows = Math.ceil(d / f);
|
|
this.columns = Math.ceil(c / e);
|
|
a(2048 > this.rows && 2048 > this.columns);
|
|
this.tiles = [];
|
|
for (d = c = 0;d < this.rows;d++) {
|
|
for (var k = 0;k < this.columns;k++) {
|
|
this.tiles.push(new l(c++, k, d, e, f, g));
|
|
}
|
|
}
|
|
}
|
|
b.prototype.getTiles = function(a, b) {
|
|
if (b.emptyArea(a)) {
|
|
return[];
|
|
}
|
|
if (b.infiniteArea(a)) {
|
|
return this.tiles;
|
|
}
|
|
var c = this.columns * this.rows;
|
|
return 40 > c && b.isScaleOrRotation() ? this.getFewTiles(a, b, 10 < c) : this.getManyTiles(a, b);
|
|
};
|
|
b.prototype.getFewTiles = function(a, c, d) {
|
|
"undefined" === typeof d && (d = !0);
|
|
if (c.isTranslationOnly() && 1 === this.tiles.length) {
|
|
return this.tiles[0].bounds.intersectsTranslated(a, c.tx, c.ty) ? [this.tiles[0]] : [];
|
|
}
|
|
c.transformRectangle(a, b._points);
|
|
var f;
|
|
a = new p(0, 0, this.w, this.h);
|
|
d && (f = new e(b._points));
|
|
a.intersect(e.getBounds(b._points));
|
|
if (a.isEmpty()) {
|
|
return[];
|
|
}
|
|
var g = a.x / this.tileW | 0;
|
|
c = a.y / this.tileH | 0;
|
|
var k = Math.ceil((a.x + a.w) / this.tileW) | 0, l = Math.ceil((a.y + a.h) / this.tileH) | 0, g = s(g, 0, this.columns), k = s(k, 0, this.columns);
|
|
c = s(c, 0, this.rows);
|
|
for (var l = s(l, 0, this.rows), m = [];g < k;g++) {
|
|
for (var n = c;n < l;n++) {
|
|
var q = this.tiles[n * this.columns + g];
|
|
q.bounds.intersects(a) && (d ? q.getOBB().intersects(f) : 1) && m.push(q);
|
|
}
|
|
}
|
|
return m;
|
|
};
|
|
b.prototype.getManyTiles = function(a, c) {
|
|
function d(a, b, c) {
|
|
return(a - b.x) * (c.y - b.y) / (c.x - b.x) + b.y;
|
|
}
|
|
function e(a, b, c, d, f) {
|
|
if (!(0 > c || c >= b.columns)) {
|
|
for (d = s(d, 0, b.rows), f = s(f + 1, 0, b.rows);d < f;d++) {
|
|
a.push(b.tiles[d * b.columns + c]);
|
|
}
|
|
}
|
|
}
|
|
var f = b._points;
|
|
c.transformRectangle(a, f);
|
|
for (var g = f[0].x < f[1].x ? 0 : 1, k = f[2].x < f[3].x ? 2 : 3, k = f[g].x < f[k].x ? g : k, g = [], l = 0;5 > l;l++, k++) {
|
|
g.push(f[k % 4]);
|
|
}
|
|
(g[1].x - g[0].x) * (g[3].y - g[0].y) < (g[1].y - g[0].y) * (g[3].x - g[0].x) && (f = g[1], g[1] = g[3], g[3] = f);
|
|
var f = [], m, n, k = Math.floor(g[0].x / this.tileW), l = (k + 1) * this.tileW;
|
|
if (g[2].x < l) {
|
|
m = Math.min(g[0].y, g[1].y, g[2].y, g[3].y);
|
|
n = Math.max(g[0].y, g[1].y, g[2].y, g[3].y);
|
|
var p = Math.floor(m / this.tileH), q = Math.floor(n / this.tileH);
|
|
e(f, this, k, p, q);
|
|
return f;
|
|
}
|
|
var u = 0, w = 4, t = !1;
|
|
if (g[0].x === g[1].x || g[0].x === g[3].x) {
|
|
g[0].x === g[1].x ? (t = !0, u++) : w--, m = d(l, g[u], g[u + 1]), n = d(l, g[w], g[w - 1]), p = Math.floor(g[u].y / this.tileH), q = Math.floor(g[w].y / this.tileH), e(f, this, k, p, q), k++;
|
|
}
|
|
do {
|
|
var D, L, M, V;
|
|
g[u + 1].x < l ? (D = g[u + 1].y, M = !0) : (D = d(l, g[u], g[u + 1]), M = !1);
|
|
g[w - 1].x < l ? (L = g[w - 1].y, V = !0) : (L = d(l, g[w], g[w - 1]), V = !1);
|
|
p = Math.floor((g[u].y < g[u + 1].y ? m : D) / this.tileH);
|
|
q = Math.floor((g[w].y > g[w - 1].y ? n : L) / this.tileH);
|
|
e(f, this, k, p, q);
|
|
if (M && t) {
|
|
break;
|
|
}
|
|
M ? (t = !0, u++, m = d(l, g[u], g[u + 1])) : m = D;
|
|
V ? (w--, n = d(l, g[w], g[w - 1])) : n = L;
|
|
k++;
|
|
l = (k + 1) * this.tileW;
|
|
} while (u < w);
|
|
return f;
|
|
};
|
|
b._points = c.createEmptyPoints(4);
|
|
return b;
|
|
}();
|
|
g.TileCache = u;
|
|
q = function() {
|
|
function b(a, c, d) {
|
|
this._cacheLevels = [];
|
|
this._source = a;
|
|
this._tileSize = c;
|
|
this._minUntiledSize = d;
|
|
}
|
|
b.prototype._getTilesAtScale = function(b, c, d) {
|
|
var e = Math.max(c.getAbsoluteScaleX(), c.getAbsoluteScaleY()), f = 0;
|
|
1 !== e && (f = s(Math.round(Math.log(1 / e) / Math.LN2), -5, 3));
|
|
e = m(f);
|
|
if (this._source.hasFlags(1)) {
|
|
for (;;) {
|
|
e = m(f);
|
|
if (d.contains(this._source.getBounds().getAbsoluteBounds().clone().scale(e, e))) {
|
|
break;
|
|
}
|
|
f--;
|
|
a(-5 <= f);
|
|
}
|
|
}
|
|
this._source.hasFlags(4) || (f = s(f, -5, 0));
|
|
e = m(f);
|
|
d = 5 + f;
|
|
f = this._cacheLevels[d];
|
|
if (!f) {
|
|
var f = this._source.getBounds().getAbsoluteBounds().clone().scale(e, e), g, k;
|
|
this._source.hasFlags(1) || !this._source.hasFlags(8) || Math.max(f.w, f.h) <= this._minUntiledSize ? (g = f.w, k = f.h) : g = k = this._tileSize;
|
|
f = this._cacheLevels[d] = new u(f.w, f.h, g, k, e);
|
|
}
|
|
return f.getTiles(b, c.scaleClone(e, e));
|
|
};
|
|
b.prototype.fetchTiles = function(a, b, c, d) {
|
|
var e = new p(0, 0, c.canvas.width, c.canvas.height);
|
|
a = this._getTilesAtScale(a, b, e);
|
|
var f;
|
|
b = this._source;
|
|
for (var g = 0;g < a.length;g++) {
|
|
var k = a[g];
|
|
k.cachedSurfaceRegion && k.cachedSurfaceRegion.surface && !b.hasFlags(3) || (f || (f = []), f.push(k));
|
|
}
|
|
f && this._cacheTiles(c, f, d, e);
|
|
b.removeFlags(2);
|
|
return a;
|
|
};
|
|
b.prototype._getTileBounds = function(a) {
|
|
for (var b = p.createEmpty(), c = 0;c < a.length;c++) {
|
|
b.union(a[c].bounds);
|
|
}
|
|
return b;
|
|
};
|
|
b.prototype._cacheTiles = function(b, c, d, e, f) {
|
|
"undefined" === typeof f && (f = 4);
|
|
a(0 < f, "Infinite recursion is likely.");
|
|
var g = this._getTileBounds(c);
|
|
b.save();
|
|
b.setTransform(1, 0, 0, 1, 0, 0);
|
|
b.clearRect(0, 0, e.w, e.h);
|
|
b.translate(-g.x, -g.y);
|
|
b.scale(c[0].scale, c[0].scale);
|
|
var l = this._source.getBounds();
|
|
b.translate(-l.x, -l.y);
|
|
2 <= k.traceLevel && k.writer && k.writer.writeLn("Rendering Tiles: " + g);
|
|
this._source.render(b);
|
|
b.restore();
|
|
for (var l = null, m = 0;m < c.length;m++) {
|
|
var n = c[m], p = n.bounds.clone();
|
|
p.x -= g.x;
|
|
p.y -= g.y;
|
|
e.contains(p) || (l || (l = []), l.push(n));
|
|
n.cachedSurfaceRegion = d(n.cachedSurfaceRegion, b, p);
|
|
}
|
|
l && (2 <= l.length ? (c = l.slice(0, l.length / 2 | 0), g = l.slice(c.length), this._cacheTiles(b, c, d, e, f - 1), this._cacheTiles(b, g, d, e, f - 1)) : this._cacheTiles(b, l, d, e, f - 1));
|
|
};
|
|
return b;
|
|
}();
|
|
g.RenderableTileCache = q;
|
|
var w = function() {
|
|
return function(a, b) {
|
|
this.surfaceRegion = a;
|
|
this.scale = b;
|
|
};
|
|
}();
|
|
g.MipMapLevel = w;
|
|
q = function() {
|
|
function a(b, c, d) {
|
|
this._source = b;
|
|
this._levels = [];
|
|
this._surfaceRegionAllocator = c;
|
|
this._size = d;
|
|
}
|
|
a.prototype.render = function(a) {
|
|
};
|
|
a.prototype.getLevel = function(a) {
|
|
a = Math.max(a.getAbsoluteScaleX(), a.getAbsoluteScaleY());
|
|
var b = 0;
|
|
1 !== a && (b = s(Math.round(Math.log(a) / Math.LN2), -5, 3));
|
|
this._source.hasFlags(4) || (b = s(b, -5, 0));
|
|
a = m(b);
|
|
var c = 5 + b, d = this._levels[c];
|
|
if (!d) {
|
|
b = this._source.getBounds().clone();
|
|
b.scale(a, a);
|
|
b.snap();
|
|
var d = this._surfaceRegionAllocator.allocate(b.w, b.h), e = d.region, d = this._levels[c] = new w(d, a), c = d.surfaceRegion.surface.context;
|
|
c.save();
|
|
c.beginPath();
|
|
c.rect(e.x, e.y, e.w, e.h);
|
|
c.clip();
|
|
c.setTransform(a, 0, 0, a, e.x - b.x, e.y - b.y);
|
|
this._source.render(c);
|
|
c.restore();
|
|
}
|
|
return d;
|
|
};
|
|
return a;
|
|
}();
|
|
g.MipMap = q;
|
|
})(k.Geometry || (k.Geometry = {}));
|
|
})(b.GFX || (b.GFX = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
__extends = this.__extends || function(b, k) {
|
|
function g() {
|
|
this.constructor = b;
|
|
}
|
|
for (var f in k) {
|
|
k.hasOwnProperty(f) && (b[f] = k[f]);
|
|
}
|
|
g.prototype = k.prototype;
|
|
b.prototype = new g;
|
|
};
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = b.IntegerUtilities.roundToMultipleOfPowerOfTwo, f = b.Debug.assert, t = k.Geometry.Rectangle;
|
|
(function(b) {
|
|
var m = function(a) {
|
|
function b() {
|
|
a.apply(this, arguments);
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(k.Geometry.Rectangle);
|
|
b.Region = m;
|
|
var d = function() {
|
|
function b(c, d) {
|
|
this._root = new a(0, 0, c | 0, d | 0, !1);
|
|
}
|
|
b.prototype.allocate = function(a, b) {
|
|
a = Math.ceil(a);
|
|
b = Math.ceil(b);
|
|
f(0 < a && 0 < b);
|
|
var c = this._root.insert(a, b);
|
|
c && (c.allocator = this, c.allocated = !0);
|
|
return c;
|
|
};
|
|
b.prototype.free = function(a) {
|
|
f(a.allocator === this);
|
|
a.clear();
|
|
a.allocated = !1;
|
|
};
|
|
b.RANDOM_ORIENTATION = !0;
|
|
b.MAX_DEPTH = 256;
|
|
return b;
|
|
}();
|
|
b.CompactAllocator = d;
|
|
var a = function(a) {
|
|
function b(c, d, e, f, g) {
|
|
a.call(this, c, d, e, f);
|
|
this._children = null;
|
|
this._horizontal = g;
|
|
this.allocated = !1;
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.clear = function() {
|
|
this._children = null;
|
|
this.allocated = !1;
|
|
};
|
|
b.prototype.insert = function(a, b) {
|
|
return this._insert(a, b, 0);
|
|
};
|
|
b.prototype._insert = function(a, c, e) {
|
|
if (!(e > d.MAX_DEPTH || this.allocated || this.w < a || this.h < c)) {
|
|
if (this._children) {
|
|
var f;
|
|
if ((f = this._children[0]._insert(a, c, e + 1)) || (f = this._children[1]._insert(a, c, e + 1))) {
|
|
return f;
|
|
}
|
|
} else {
|
|
return f = !this._horizontal, d.RANDOM_ORIENTATION && (f = .5 <= Math.random()), this._children = this._horizontal ? [new b(this.x, this.y, this.w, c, !1), new b(this.x, this.y + c, this.w, this.h - c, f)] : [new b(this.x, this.y, a, this.h, !0), new b(this.x + a, this.y, this.w - a, this.h, f)], f = this._children[0], f.w === a && f.h === c ? (f.allocated = !0, f) : this._insert(a, c, e + 1);
|
|
}
|
|
}
|
|
};
|
|
return b;
|
|
}(b.Region), c = function() {
|
|
function a(b, c, d, e) {
|
|
this._columns = b / d | 0;
|
|
this._rows = c / e | 0;
|
|
this._sizeW = d;
|
|
this._sizeH = e;
|
|
this._freeList = [];
|
|
this._index = 0;
|
|
this._total = this._columns * this._rows;
|
|
}
|
|
a.prototype.allocate = function(a, b) {
|
|
a = Math.ceil(a);
|
|
b = Math.ceil(b);
|
|
f(0 < a && 0 < b);
|
|
var c = this._sizeW, d = this._sizeH;
|
|
if (a > c || b > d) {
|
|
return null;
|
|
}
|
|
var e = this._freeList, g = this._index;
|
|
return 0 < e.length ? (c = e.pop(), f(!1 === c.allocated), c.allocated = !0, c) : g < this._total ? (e = g / this._columns | 0, c = new n((g - e * this._columns) * c, e * d, a, b), c.index = g, c.allocator = this, c.allocated = !0, this._index++, c) : null;
|
|
};
|
|
a.prototype.free = function(a) {
|
|
f(a.allocator === this);
|
|
a.allocated = !1;
|
|
this._freeList.push(a);
|
|
};
|
|
return a;
|
|
}();
|
|
b.GridAllocator = c;
|
|
var n = function(a) {
|
|
function b(c, d, e, f) {
|
|
a.call(this, c, d, e, f);
|
|
this.index = -1;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(b.Region);
|
|
b.GridCell = n;
|
|
var p = function() {
|
|
return function(a, b, c) {
|
|
this.size = a;
|
|
this.region = b;
|
|
this.allocator = c;
|
|
};
|
|
}(), e = function(a) {
|
|
function b(c, d, e, f, g) {
|
|
a.call(this, c, d, e, f);
|
|
this.region = g;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(b.Region);
|
|
b.BucketCell = e;
|
|
m = function() {
|
|
function a(b, c) {
|
|
f(0 < b && 0 < c);
|
|
this._buckets = [];
|
|
this._w = b | 0;
|
|
this._h = c | 0;
|
|
this._filled = 0;
|
|
}
|
|
a.prototype.allocate = function(a, b) {
|
|
a = Math.ceil(a);
|
|
b = Math.ceil(b);
|
|
f(0 < a && 0 < b);
|
|
var d = Math.max(a, b);
|
|
if (a > this._w || b > this._h) {
|
|
return null;
|
|
}
|
|
var k = null, h, m = this._buckets;
|
|
do {
|
|
for (var n = 0;n < m.length && !(m[n].size >= d && (h = m[n], k = h.allocator.allocate(a, b)));n++) {
|
|
}
|
|
if (!k) {
|
|
var q = this._h - this._filled;
|
|
if (q < b) {
|
|
return null;
|
|
}
|
|
var n = g(d, 2), s = 2 * n;
|
|
s > q && (s = q);
|
|
if (s < n) {
|
|
return null;
|
|
}
|
|
q = new t(0, this._filled, this._w, s);
|
|
this._buckets.push(new p(n, q, new c(q.w, q.h, n, n)));
|
|
this._filled += s;
|
|
}
|
|
} while (!k);
|
|
return new e(h.region.x + k.x, h.region.y + k.y, k.w, k.h, k);
|
|
};
|
|
a.prototype.free = function(a) {
|
|
a.region.allocator.free(a.region);
|
|
};
|
|
return a;
|
|
}();
|
|
b.BucketAllocator = m;
|
|
})(k.RegionAllocator || (k.RegionAllocator = {}));
|
|
(function(b) {
|
|
var f = function() {
|
|
function b(a) {
|
|
this._createSurface = a;
|
|
this._surfaces = [];
|
|
}
|
|
Object.defineProperty(b.prototype, "surfaces", {get:function() {
|
|
return this._surfaces;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype._createNewSurface = function(a, b) {
|
|
var d = this._createSurface(a, b);
|
|
this._surfaces.push(d);
|
|
return d;
|
|
};
|
|
b.prototype.addSurface = function(a) {
|
|
this._surfaces.push(a);
|
|
};
|
|
b.prototype.allocate = function(a, b) {
|
|
for (var d = 0;d < this._surfaces.length;d++) {
|
|
var f = this._surfaces[d].allocate(a, b);
|
|
if (f) {
|
|
return f;
|
|
}
|
|
}
|
|
return this._createNewSurface(a, b).allocate(a, b);
|
|
};
|
|
b.prototype.free = function(a) {
|
|
};
|
|
return b;
|
|
}();
|
|
b.SimpleAllocator = f;
|
|
})(k.SurfaceRegionAllocator || (k.SurfaceRegionAllocator = {}));
|
|
})(b.GFX || (b.GFX = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = k.Geometry.Point, f = k.Geometry.Matrix, t = b.Debug.assert, s = b.Debug.unexpected;
|
|
(function(a) {
|
|
a[a.None = 0] = "None";
|
|
a[a.Upward = 1] = "Upward";
|
|
a[a.Downward = 2] = "Downward";
|
|
})(k.Direction || (k.Direction = {}));
|
|
(function(a) {
|
|
a[a.Never = 0] = "Never";
|
|
a[a.Always = 1] = "Always";
|
|
a[a.Auto = 2] = "Auto";
|
|
})(k.PixelSnapping || (k.PixelSnapping = {}));
|
|
(function(a) {
|
|
a[a.Never = 0] = "Never";
|
|
a[a.Always = 1] = "Always";
|
|
})(k.Smoothing || (k.Smoothing = {}));
|
|
(function(a) {
|
|
a[a.Empty = 0] = "Empty";
|
|
a[a.Dirty = 1] = "Dirty";
|
|
a[a.IsMask = 2] = "IsMask";
|
|
a[a.IgnoreMask = 8] = "IgnoreMask";
|
|
a[a.IgnoreQuery = 16] = "IgnoreQuery";
|
|
a[a.InvalidBounds = 32] = "InvalidBounds";
|
|
a[a.InvalidConcatenatedMatrix = 64] = "InvalidConcatenatedMatrix";
|
|
a[a.InvalidInvertedConcatenatedMatrix = 128] = "InvalidInvertedConcatenatedMatrix";
|
|
a[a.InvalidConcatenatedColorMatrix = 256] = "InvalidConcatenatedColorMatrix";
|
|
a[a.InvalidPaint = 512] = "InvalidPaint";
|
|
a[a.EnterClip = 4096] = "EnterClip";
|
|
a[a.LeaveClip = 8192] = "LeaveClip";
|
|
a[a.Visible = 16384] = "Visible";
|
|
a[a.Transparent = 32768] = "Transparent";
|
|
})(k.FrameFlags || (k.FrameFlags = {}));
|
|
(function(a) {
|
|
a[a.None = 0] = "None";
|
|
a[a.AllowMatrixWrite = 1] = "AllowMatrixWrite";
|
|
a[a.AllowColorMatrixWrite = 2] = "AllowColorMatrixWrite";
|
|
a[a.AllowBlendModeWrite = 4] = "AllowBlendModeWrite";
|
|
a[a.AllowFiltersWrite = 8] = "AllowFiltersWrite";
|
|
a[a.AllowMaskWrite = 16] = "AllowMaskWrite";
|
|
a[a.AllowChildrenWrite = 32] = "AllowChildrenWrite";
|
|
a[a.AllowClipWrite = 64] = "AllowClipWrite";
|
|
a[a.AllowAllWrite = a.AllowMatrixWrite | a.AllowColorMatrixWrite | a.AllowBlendModeWrite | a.AllowFiltersWrite | a.AllowMaskWrite | a.AllowChildrenWrite | a.AllowClipWrite] = "AllowAllWrite";
|
|
})(k.FrameCapabilityFlags || (k.FrameCapabilityFlags = {}));
|
|
var m = k.FrameCapabilityFlags, d = function() {
|
|
function a() {
|
|
this._id = a._nextID++;
|
|
this._flags = 17376;
|
|
this._capability = m.AllowAllWrite;
|
|
this._parent = null;
|
|
this._clip = -1;
|
|
this._blendMode = 1;
|
|
this._filters = [];
|
|
this._mask = null;
|
|
this._matrix = f.createIdentity();
|
|
this._concatenatedMatrix = f.createIdentity();
|
|
this._invertedConcatenatedMatrix = null;
|
|
this._colorMatrix = k.ColorMatrix.createIdentity();
|
|
this._concatenatedColorMatrix = k.ColorMatrix.createIdentity();
|
|
this._pixelSnapping = this._smoothing = 0;
|
|
}
|
|
a._getAncestors = function(b, d) {
|
|
"undefined" === typeof d && (d = null);
|
|
var f = a._path;
|
|
for (f.length = 0;b && b !== d;) {
|
|
t(b !== b._parent), f.push(b), b = b._parent;
|
|
}
|
|
t(b === d, "Last ancestor is not an ancestor.");
|
|
return f;
|
|
};
|
|
Object.defineProperty(a.prototype, "parent", {get:function() {
|
|
return this._parent;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "id", {get:function() {
|
|
return this._id;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype._setFlags = function(a) {
|
|
this._flags |= a;
|
|
};
|
|
a.prototype._removeFlags = function(a) {
|
|
this._flags &= ~a;
|
|
};
|
|
a.prototype._hasFlags = function(a) {
|
|
return(this._flags & a) === a;
|
|
};
|
|
a.prototype._toggleFlags = function(a, b) {
|
|
this._flags = b ? this._flags | a : this._flags & ~a;
|
|
};
|
|
a.prototype._hasAnyFlags = function(a) {
|
|
return!!(this._flags & a);
|
|
};
|
|
a.prototype._findClosestAncestor = function(a) {
|
|
for (var b = this;b;) {
|
|
if (!1 === b._hasFlags(a)) {
|
|
return b;
|
|
}
|
|
t(b !== b._parent);
|
|
b = b._parent;
|
|
}
|
|
return null;
|
|
};
|
|
a.prototype._isAncestor = function(a) {
|
|
for (;a;) {
|
|
if (a === this) {
|
|
return!0;
|
|
}
|
|
t(a !== a._parent);
|
|
a = a._parent;
|
|
}
|
|
return!1;
|
|
};
|
|
a.prototype.setCapability = function(a, b, d) {
|
|
"undefined" === typeof b && (b = !0);
|
|
"undefined" === typeof d && (d = 0);
|
|
this._capability = b ? this._capability | a : this._capability & ~a;
|
|
if (1 === d && this._parent) {
|
|
this._parent.setCapability(a, b, d);
|
|
} else {
|
|
if (2 === d && this instanceof k.FrameContainer) {
|
|
for (var e = this._children, f = 0;f < e.length;f++) {
|
|
e[f].setCapability(a, b, d);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
a.prototype.removeCapability = function(a) {
|
|
this.setCapability(a, !1);
|
|
};
|
|
a.prototype.hasCapability = function(a) {
|
|
return this._capability & a;
|
|
};
|
|
a.prototype.checkCapability = function(a) {
|
|
this._capability & a || s("Frame doesn't have capability: " + m[a]);
|
|
};
|
|
a.prototype._propagateFlagsUp = function(a) {
|
|
if (!this._hasFlags(a)) {
|
|
this._setFlags(a);
|
|
var b = this._parent;
|
|
b && b._propagateFlagsUp(a);
|
|
}
|
|
};
|
|
a.prototype._propagateFlagsDown = function(a) {
|
|
this._setFlags(a);
|
|
};
|
|
a.prototype._invalidatePosition = function() {
|
|
this._propagateFlagsDown(192);
|
|
this._parent && this._parent._invalidateBounds();
|
|
this._invalidateParentPaint();
|
|
};
|
|
a.prototype.invalidatePaint = function() {
|
|
this._propagateFlagsUp(512);
|
|
};
|
|
a.prototype._invalidateParentPaint = function() {
|
|
this._parent && this._parent._propagateFlagsUp(512);
|
|
};
|
|
a.prototype._invalidateBounds = function() {
|
|
this._propagateFlagsUp(32);
|
|
};
|
|
Object.defineProperty(a.prototype, "properties", {get:function() {
|
|
return this._properties || (this._properties = Object.create(null));
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "x", {get:function() {
|
|
return this._matrix.tx;
|
|
}, set:function(a) {
|
|
this.checkCapability(1);
|
|
this._matrix.tx = a;
|
|
this._invalidatePosition();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "y", {get:function() {
|
|
return this._matrix.ty;
|
|
}, set:function(a) {
|
|
this.checkCapability(1);
|
|
this._matrix.ty = a;
|
|
this._invalidatePosition();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "matrix", {get:function() {
|
|
return this._matrix;
|
|
}, set:function(a) {
|
|
this.checkCapability(1);
|
|
this._matrix.set(a);
|
|
this._invalidatePosition();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "blendMode", {get:function() {
|
|
return this._blendMode;
|
|
}, set:function(a) {
|
|
a |= 0;
|
|
this.checkCapability(4);
|
|
this._blendMode = a;
|
|
this._invalidateParentPaint();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "filters", {get:function() {
|
|
return this._filters;
|
|
}, set:function(a) {
|
|
this.checkCapability(8);
|
|
this._filters = a;
|
|
this._invalidateParentPaint();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "colorMatrix", {get:function() {
|
|
return this._colorMatrix;
|
|
}, set:function(a) {
|
|
this.checkCapability(2);
|
|
this._colorMatrix.set(a);
|
|
this._propagateFlagsDown(256);
|
|
this._invalidateParentPaint();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "mask", {get:function() {
|
|
return this._mask;
|
|
}, set:function(a) {
|
|
this.checkCapability(16);
|
|
this._mask && this._mask !== a && this._mask._removeFlags(2);
|
|
if (this._mask = a) {
|
|
this._mask._setFlags(2), this._mask.invalidate();
|
|
}
|
|
this.invalidate();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "clip", {get:function() {
|
|
return this._clip;
|
|
}, set:function(a) {
|
|
this.checkCapability(64);
|
|
this._clip = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.getBounds = function() {
|
|
t(!1, "Override this.");
|
|
return null;
|
|
};
|
|
a.prototype.gatherPreviousDirtyRegions = function() {
|
|
var a = this.stage;
|
|
a.trackDirtyRegions && this.visit(function(b) {
|
|
if (b instanceof k.FrameContainer) {
|
|
return 0;
|
|
}
|
|
b._previouslyRenderedAABB && a.dirtyRegion.addDirtyRectangle(b._previouslyRenderedAABB);
|
|
return 0;
|
|
});
|
|
};
|
|
a.prototype.getConcatenatedColorMatrix = function() {
|
|
if (!this._parent) {
|
|
return this._colorMatrix;
|
|
}
|
|
if (this._hasFlags(256)) {
|
|
for (var b = this._findClosestAncestor(256), d = a._getAncestors(this, b), f = b ? b._concatenatedColorMatrix.clone() : k.ColorMatrix.createIdentity(), e = d.length - 1;0 <= e;e--) {
|
|
b = d[e], t(b._hasFlags(256)), f.multiply(b._colorMatrix), b._concatenatedColorMatrix.set(f), b._removeFlags(256);
|
|
}
|
|
}
|
|
return this._concatenatedColorMatrix;
|
|
};
|
|
a.prototype.getConcatenatedAlpha = function(a) {
|
|
"undefined" === typeof a && (a = null);
|
|
for (var b = this, d = 1;b && b !== a;) {
|
|
d *= b._colorMatrix.alphaMultiplier, b = b._parent;
|
|
}
|
|
return d;
|
|
};
|
|
Object.defineProperty(a.prototype, "stage", {get:function() {
|
|
for (var a = this;a._parent;) {
|
|
a = a._parent;
|
|
}
|
|
return a instanceof k.Stage ? a : null;
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.getConcatenatedMatrix = function() {
|
|
if (this._hasFlags(64)) {
|
|
for (var b = this._findClosestAncestor(64), d = a._getAncestors(this, b), g = b ? b._concatenatedMatrix.clone() : f.createIdentity(), e = d.length - 1;0 <= e;e--) {
|
|
b = d[e], t(b._hasFlags(64)), g.preMultiply(b._matrix), b._concatenatedMatrix.set(g), b._removeFlags(64);
|
|
}
|
|
}
|
|
return this._concatenatedMatrix;
|
|
};
|
|
a.prototype._getInvertedConcatenatedMatrix = function() {
|
|
this._hasFlags(128) && (this._invertedConcatenatedMatrix || (this._invertedConcatenatedMatrix = f.createIdentity()), this._invertedConcatenatedMatrix.set(this.getConcatenatedMatrix()), this._invertedConcatenatedMatrix.inverse(this._invertedConcatenatedMatrix), this._removeFlags(128));
|
|
return this._invertedConcatenatedMatrix;
|
|
};
|
|
a.prototype.invalidate = function() {
|
|
this._setFlags(1);
|
|
};
|
|
a.prototype.visit = function(a, b, d, e) {
|
|
"undefined" === typeof d && (d = 0);
|
|
"undefined" === typeof e && (e = 0);
|
|
var f, g, m = e & 8;
|
|
f = [this];
|
|
var s, r = !!b;
|
|
r && (s = [b.clone()]);
|
|
for (var h = [d];0 < f.length;) {
|
|
g = f.pop();
|
|
r && (b = s.pop());
|
|
d = h.pop() | g._flags;
|
|
var x = a(g, b, d);
|
|
if (0 === x) {
|
|
if (g instanceof k.FrameContainer) {
|
|
var y = g._children.length;
|
|
if (e & 16 && !k.disableClipping.value) {
|
|
for (var x = g.gatherLeaveClipEvents(), G = y - 1;0 <= G;G--) {
|
|
if (x && x[G]) {
|
|
for (;x[G].length;) {
|
|
if (y = x[G].shift(), f.push(y), h.push(8192), r) {
|
|
var I = b.clone();
|
|
I.preMultiply(y.matrix);
|
|
s.push(I);
|
|
}
|
|
}
|
|
}
|
|
var C = g._children[G];
|
|
t(C);
|
|
f.push(C);
|
|
r && (I = b.clone(), I.preMultiply(C.matrix), s.push(I));
|
|
0 <= C.clip ? h.push(d | 4096) : h.push(d);
|
|
}
|
|
} else {
|
|
for (G = 0;G < y;G++) {
|
|
if (C = g._children[m ? G : y - 1 - G]) {
|
|
f.push(C), r && (I = b.clone(), I.preMultiply(C.matrix), s.push(I)), h.push(d);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (1 === x) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
a.prototype.getDepth = function() {
|
|
for (var a = 0, b = this;b._parent;) {
|
|
a++, b = b._parent;
|
|
}
|
|
return a;
|
|
};
|
|
Object.defineProperty(a.prototype, "smoothing", {get:function() {
|
|
return this._smoothing;
|
|
}, set:function(a) {
|
|
this._smoothing = a;
|
|
this.invalidate();
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(a.prototype, "pixelSnapping", {get:function() {
|
|
return this._pixelSnapping;
|
|
}, set:function(a) {
|
|
this._pixelSnapping = a;
|
|
this.invalidate();
|
|
}, enumerable:!0, configurable:!0});
|
|
a.prototype.queryFramesByPoint = function(a, b, d) {
|
|
"undefined" === typeof b && (b = !1);
|
|
"undefined" === typeof d && (d = !1);
|
|
var e = f.createIdentity(), m = g.createEmpty(), l = [];
|
|
this.visit(function(f, g, r) {
|
|
if (r & 16) {
|
|
return 2;
|
|
}
|
|
g.inverse(e);
|
|
m.set(a);
|
|
e.transformPoint(m);
|
|
if (f.getBounds().containsPoint(m)) {
|
|
if (f instanceof k.FrameContainer) {
|
|
if (d && (l.push(f), !b)) {
|
|
return 1;
|
|
}
|
|
} else {
|
|
if (l.push(f), !b) {
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
return 2;
|
|
}, f.createIdentity(), 0);
|
|
l.reverse();
|
|
return l;
|
|
};
|
|
a._path = [];
|
|
a._nextID = 0;
|
|
return a;
|
|
}();
|
|
k.Frame = d;
|
|
})(b.GFX || (b.GFX = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = k.Geometry.Rectangle, f = b.Debug.assert, t = function(b) {
|
|
function k() {
|
|
b.call(this);
|
|
this._children = [];
|
|
}
|
|
__extends(k, b);
|
|
k.prototype.addChild = function(b) {
|
|
this.checkCapability(32);
|
|
b && (f(b !== this), b._parent = this, b._invalidatePosition());
|
|
this._children.push(b);
|
|
return b;
|
|
};
|
|
k.prototype.addChildAt = function(b, a) {
|
|
this.checkCapability(32);
|
|
f(0 <= a && a <= this._children.length);
|
|
a === this._children.length ? this._children.push(b) : this._children.splice(a, 0, b);
|
|
b && (f(b !== this), b._parent = this, b._invalidatePosition());
|
|
return b;
|
|
};
|
|
k.prototype.removeChild = function(b) {
|
|
this.checkCapability(32);
|
|
b._parent === this && (b = this._children.indexOf(b), this.removeChildAt(b));
|
|
};
|
|
k.prototype.removeChildAt = function(b) {
|
|
this.checkCapability(32);
|
|
f(0 <= b && b < this._children.length);
|
|
if (b = this._children.splice(b, 1)[0]) {
|
|
b._parent = null, b._invalidatePosition();
|
|
}
|
|
};
|
|
k.prototype.clearChildren = function() {
|
|
this.checkCapability(32);
|
|
for (var b = 0;b < this._children.length;b++) {
|
|
var a = this._children[b];
|
|
a && a._invalidatePosition();
|
|
}
|
|
this._children.length = 0;
|
|
};
|
|
k.prototype._propagateFlagsDown = function(b) {
|
|
if (!this._hasFlags(b)) {
|
|
this._setFlags(b);
|
|
for (var a = this._children, c = 0;c < a.length;c++) {
|
|
a[c]._propagateFlagsDown(b);
|
|
}
|
|
}
|
|
};
|
|
k.prototype.getBounds = function() {
|
|
if (!this._hasFlags(32)) {
|
|
return this._bounds;
|
|
}
|
|
for (var b = g.createEmpty(), a = 0;a < this._children.length;a++) {
|
|
var c = this._children[a], f = c.getBounds().clone();
|
|
c.matrix.transformRectangleAABB(f);
|
|
b.union(f);
|
|
}
|
|
this._bounds = b;
|
|
this._removeFlags(32);
|
|
return b;
|
|
};
|
|
k.prototype.gatherLeaveClipEvents = function() {
|
|
for (var b = this._children.length, a = null, c = 0;c < b;c++) {
|
|
var f = this._children[c];
|
|
if (0 <= f.clip) {
|
|
var g = c + f.clip, a = a || [];
|
|
a[g] || (a[g] = []);
|
|
a[g].push(f);
|
|
}
|
|
}
|
|
return a;
|
|
};
|
|
return k;
|
|
}(k.Frame);
|
|
k.FrameContainer = t;
|
|
})(b.GFX || (b.GFX = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = k.Geometry.Rectangle, f = k.Geometry.DirtyRegion, t = b.Debug.assert;
|
|
(function(b) {
|
|
b[b.Normal = 1] = "Normal";
|
|
b[b.Layer = 2] = "Layer";
|
|
b[b.Multiply = 3] = "Multiply";
|
|
b[b.Screen = 4] = "Screen";
|
|
b[b.Lighten = 5] = "Lighten";
|
|
b[b.Darken = 6] = "Darken";
|
|
b[b.Difference = 7] = "Difference";
|
|
b[b.Add = 8] = "Add";
|
|
b[b.Subtract = 9] = "Subtract";
|
|
b[b.Invert = 10] = "Invert";
|
|
b[b.Alpha = 11] = "Alpha";
|
|
b[b.Erase = 12] = "Erase";
|
|
b[b.Overlay = 13] = "Overlay";
|
|
b[b.HardLight = 14] = "HardLight";
|
|
})(k.BlendMode || (k.BlendMode = {}));
|
|
(function(b) {
|
|
b[b.None = 0] = "None";
|
|
b[b.Continue = 0] = "Continue";
|
|
b[b.Stop = 1] = "Stop";
|
|
b[b.Skip = 2] = "Skip";
|
|
b[b.FrontToBack = 8] = "FrontToBack";
|
|
b[b.Clips = 16] = "Clips";
|
|
})(k.VisitorFlags || (k.VisitorFlags = {}));
|
|
k.StageRendererOptions = function() {
|
|
return function() {
|
|
this.debug = !1;
|
|
this.paintRenderable = !0;
|
|
this.paintViewport = this.paintFlashing = this.paintBounds = !1;
|
|
};
|
|
}();
|
|
(function(b) {
|
|
b[b.Canvas2D = 0] = "Canvas2D";
|
|
b[b.WebGL = 1] = "WebGL";
|
|
b[b.Both = 2] = "Both";
|
|
b[b.DOM = 3] = "DOM";
|
|
b[b.SVG = 4] = "SVG";
|
|
})(k.Backend || (k.Backend = {}));
|
|
var s = function() {
|
|
function b(d, a, c) {
|
|
this._canvas = d;
|
|
this._stage = a;
|
|
this._options = c;
|
|
this._viewport = g.createSquare();
|
|
}
|
|
Object.defineProperty(b.prototype, "viewport", {set:function(b) {
|
|
this._viewport.set(b);
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.render = function() {
|
|
};
|
|
b.prototype.resize = function() {
|
|
};
|
|
return b;
|
|
}();
|
|
k.StageRenderer = s;
|
|
s = function(b) {
|
|
function d(a, c, d) {
|
|
"undefined" === typeof d && (d = !1);
|
|
b.call(this);
|
|
this.w = a;
|
|
this.h = c;
|
|
this.dirtyRegion = new f(a, c);
|
|
this.trackDirtyRegions = d;
|
|
this._setFlags(1);
|
|
}
|
|
__extends(d, b);
|
|
d.prototype.readyToRender = function(a) {
|
|
"undefined" === typeof a && (a = !0);
|
|
if (!this._hasFlags(512)) {
|
|
return!1;
|
|
}
|
|
a && (k.enterTimeline("readyToRender"), this.visit(function(a) {
|
|
return a._hasFlags(512) ? (a._toggleFlags(512, !1), 0) : 2;
|
|
}), k.leaveTimeline());
|
|
return!0;
|
|
};
|
|
d.prototype.gatherMarkedDirtyRegions = function(a) {
|
|
var b = this;
|
|
this.visit(function(a, d, e) {
|
|
a._removeFlags(1);
|
|
if (a instanceof k.FrameContainer) {
|
|
return 0;
|
|
}
|
|
e & 1 && (e = a.getBounds().clone(), d.transformRectangleAABB(e), b.dirtyRegion.addDirtyRectangle(e), a._previouslyRenderedAABB && b.dirtyRegion.addDirtyRectangle(a._previouslyRenderedAABB));
|
|
return 0;
|
|
}, a, 0);
|
|
};
|
|
d.prototype.gatherFrames = function() {
|
|
var a = [];
|
|
this.visit(function(b, d) {
|
|
b instanceof k.FrameContainer || a.push(b);
|
|
return 0;
|
|
}, this.matrix);
|
|
return a;
|
|
};
|
|
d.prototype.gatherLayers = function() {
|
|
var a = [], b;
|
|
this.visit(function(d, f) {
|
|
if (d instanceof k.FrameContainer) {
|
|
return 0;
|
|
}
|
|
var e = d.getBounds().clone();
|
|
f.transformRectangleAABB(e);
|
|
d._hasFlags(1) ? (b && a.push(b), a.push(e.clone()), b = null) : b ? b.union(e) : b = e.clone();
|
|
return 0;
|
|
}, this.matrix);
|
|
b && a.push(b);
|
|
return a;
|
|
};
|
|
return d;
|
|
}(k.FrameContainer);
|
|
k.Stage = s;
|
|
s = function(f) {
|
|
function d(a, c) {
|
|
f.call(this);
|
|
this.color = b.Color.None;
|
|
this._bounds = new g(0, 0, a, c);
|
|
}
|
|
__extends(d, f);
|
|
d.prototype.setBounds = function(a) {
|
|
this._bounds.set(a);
|
|
};
|
|
d.prototype.getBounds = function() {
|
|
return this._bounds;
|
|
};
|
|
return d;
|
|
}(k.FrameContainer);
|
|
k.ClipRectangle = s;
|
|
s = function(b) {
|
|
function d(a) {
|
|
b.call(this);
|
|
t(a);
|
|
this._source = a;
|
|
}
|
|
__extends(d, b);
|
|
Object.defineProperty(d.prototype, "source", {get:function() {
|
|
return this._source;
|
|
}, enumerable:!0, configurable:!0});
|
|
d.prototype.getBounds = function() {
|
|
return this.source.getBounds();
|
|
};
|
|
return d;
|
|
}(k.Frame);
|
|
k.Shape = s;
|
|
})(b.GFX || (b.GFX = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = k.Geometry.Rectangle, f = k.Geometry.Matrix, t = b.Debug.assertUnreachable, s = b.Debug.assert, m = b.Debug.unexpected, d = b.ArrayUtilities.indexOf;
|
|
(function(a) {
|
|
a[a.None = 0] = "None";
|
|
a[a.Dynamic = 1] = "Dynamic";
|
|
a[a.Dirty = 2] = "Dirty";
|
|
a[a.Scalable = 4] = "Scalable";
|
|
a[a.Tileable = 8] = "Tileable";
|
|
a[a.Loading = 16] = "Loading";
|
|
})(k.RenderableFlags || (k.RenderableFlags = {}));
|
|
var a = function() {
|
|
function a(b) {
|
|
this._flags = 0;
|
|
this.properties = {};
|
|
this._frameReferrers = [];
|
|
this._renderableReferrers = [];
|
|
this._bounds = b.clone();
|
|
}
|
|
a.prototype.setFlags = function(a) {
|
|
this._flags |= a;
|
|
};
|
|
a.prototype.hasFlags = function(a) {
|
|
return(this._flags & a) === a;
|
|
};
|
|
a.prototype.removeFlags = function(a) {
|
|
this._flags &= ~a;
|
|
};
|
|
a.prototype.addFrameReferrer = function(a) {
|
|
d(this._frameReferrers, a);
|
|
this._frameReferrers.push(a);
|
|
};
|
|
a.prototype.addRenderableReferrer = function(a) {
|
|
d(this._renderableReferrers, a);
|
|
this._renderableReferrers.push(a);
|
|
};
|
|
a.prototype.invalidatePaint = function() {
|
|
this.setFlags(2);
|
|
for (var a = this._frameReferrers, b = 0;b < a.length;b++) {
|
|
a[b].invalidatePaint();
|
|
}
|
|
a = this._renderableReferrers;
|
|
for (b = 0;b < a.length;b++) {
|
|
a[b].invalidatePaint();
|
|
}
|
|
};
|
|
a.prototype.getBounds = function() {
|
|
return this._bounds;
|
|
};
|
|
a.prototype.render = function(a, b, c) {
|
|
};
|
|
return a;
|
|
}();
|
|
k.Renderable = a;
|
|
var c = function(a) {
|
|
function b(c, d) {
|
|
a.call(this, c);
|
|
this.render = d;
|
|
}
|
|
__extends(b, a);
|
|
return b;
|
|
}(a);
|
|
k.CustomRenderable = c;
|
|
c = function(a) {
|
|
function b(c, d) {
|
|
a.call(this, d);
|
|
this._flags = 3;
|
|
this._lastCurrentTime = 0;
|
|
this._video = document.createElement("video");
|
|
this._video.src = c;
|
|
this._video.loop = !0;
|
|
this._video.play();
|
|
b._renderableVideos.push(this);
|
|
}
|
|
__extends(b, a);
|
|
b.prototype.invalidatePaintCheck = function() {
|
|
this._lastCurrentTime !== this._video.currentTime && this.invalidatePaint();
|
|
this._lastCurrentTime = this._video.currentTime;
|
|
};
|
|
b.invalidateVideos = function() {
|
|
for (var a = b._renderableVideos, c = 0;c < a.length;c++) {
|
|
a[c].invalidatePaintCheck();
|
|
}
|
|
};
|
|
b.prototype.render = function(a, b) {
|
|
k.enterTimeline("RenderableVideo.render");
|
|
this._video && a.drawImage(this._video, 0, 0);
|
|
k.leaveTimeline("RenderableVideo.render");
|
|
};
|
|
b._renderableVideos = [];
|
|
return b;
|
|
}(a);
|
|
k.RenderableVideo = c;
|
|
c = function(a) {
|
|
function c(b, d) {
|
|
a.call(this, d);
|
|
this._flags = 3;
|
|
this.properties = {};
|
|
this._canvas = b;
|
|
this._context = this._canvas.getContext("2d");
|
|
this._imageData = this._context.createImageData(this._bounds.w, this._bounds.h);
|
|
}
|
|
__extends(c, a);
|
|
c.FromDataBuffer = function(a, b, d) {
|
|
k.enterTimeline("RenderableBitmap.FromDataBuffer");
|
|
var e = document.createElement("canvas");
|
|
e.width = d.w;
|
|
e.height = d.h;
|
|
d = new c(e, d);
|
|
d.updateFromDataBuffer(a, b);
|
|
k.leaveTimeline("RenderableBitmap.FromDataBuffer");
|
|
return d;
|
|
};
|
|
c.FromFrame = function(a, b, d, e, f) {
|
|
k.enterTimeline("RenderableBitmap.FromFrame");
|
|
var g = document.createElement("canvas"), l = a.getBounds();
|
|
g.width = l.w;
|
|
g.height = l.h;
|
|
g = new c(g, l);
|
|
g.drawFrame(a, b, d, e, f);
|
|
k.leaveTimeline("RenderableBitmap.FromFrame");
|
|
return g;
|
|
};
|
|
c.prototype.updateFromDataBuffer = function(a, c) {
|
|
if (k.imageUpdateOption.value) {
|
|
k.enterTimeline("RenderableBitmap.updateFromDataBuffer", {length:c.length});
|
|
if (4 === a || 5 === a || 6 === a) {
|
|
var d = this;
|
|
d.setFlags(16);
|
|
var e = new Image;
|
|
e.src = URL.createObjectURL(c.toBlob());
|
|
e.onload = function() {
|
|
d._context.drawImage(e, 0, 0);
|
|
d.removeFlags(16);
|
|
d.invalidatePaint();
|
|
};
|
|
e.onerror = function() {
|
|
m("Image loading error: " + b.ImageType[a]);
|
|
};
|
|
} else {
|
|
k.imageConvertOption.value && (k.enterTimeline("ColorUtilities.convertImage"), b.ColorUtilities.convertImage(a, 3, new Int32Array(c.buffer), new Int32Array(this._imageData.data.buffer)), k.leaveTimeline("ColorUtilities.convertImage")), k.enterTimeline("putImageData"), this._context.putImageData(this._imageData, 0, 0), k.leaveTimeline("putImageData");
|
|
}
|
|
this.invalidatePaint();
|
|
k.leaveTimeline("RenderableBitmap.updateFromDataBuffer");
|
|
}
|
|
};
|
|
c.prototype.readImageData = function(a) {
|
|
var b = this._context.getImageData(0, 0, this._canvas.width, this._canvas.height).data;
|
|
a.writeRawBytes(b);
|
|
};
|
|
c.prototype.render = function(a, b) {
|
|
k.enterTimeline("RenderableBitmap.render");
|
|
this._canvas ? a.drawImage(this._canvas, 0, 0) : this._renderFallback(a);
|
|
k.leaveTimeline("RenderableBitmap.render");
|
|
};
|
|
c.prototype.drawFrame = function(a, b, c, d, e) {
|
|
k.enterTimeline("RenderableBitmap.drawFrame");
|
|
c = k.Canvas2D;
|
|
d = this.getBounds();
|
|
var f = new c.Canvas2DStageRendererOptions;
|
|
f.cacheShapes = !0;
|
|
(new c.Canvas2DStageRenderer(this._canvas, null, f)).renderFrame(a, e || d, b);
|
|
k.leaveTimeline("RenderableBitmap.drawFrame");
|
|
};
|
|
c.prototype._renderFallback = function(a) {
|
|
this.fillStyle || (this.fillStyle = b.ColorStyle.randomStyle());
|
|
var c = this._bounds;
|
|
a.save();
|
|
a.beginPath();
|
|
a.lineWidth = 2;
|
|
a.fillStyle = this.fillStyle;
|
|
a.fillRect(c.x, c.y, c.w, c.h);
|
|
a.restore();
|
|
};
|
|
return c;
|
|
}(a);
|
|
k.RenderableBitmap = c;
|
|
var n;
|
|
(function(a) {
|
|
a[a.Fill = 0] = "Fill";
|
|
a[a.Stroke = 1] = "Stroke";
|
|
a[a.StrokeFill = 2] = "StrokeFill";
|
|
})(n || (n = {}));
|
|
var p = function() {
|
|
return function(a, b, c, d) {
|
|
this.type = a;
|
|
this.style = b;
|
|
this.smoothImage = c;
|
|
this.strokeProperties = d;
|
|
this.path = new Path2D;
|
|
s(1 === a === !!d);
|
|
};
|
|
}(), e = function() {
|
|
return function(a, b, c, d, e) {
|
|
this.thickness = a;
|
|
this.scaleMode = b;
|
|
this.capsStyle = c;
|
|
this.jointsStyle = d;
|
|
this.miterLimit = e;
|
|
};
|
|
}();
|
|
n = function(a) {
|
|
function c(b, d, e, f) {
|
|
a.call(this, f);
|
|
this._flags = 14;
|
|
this.properties = {};
|
|
this._id = b;
|
|
this._pathData = d;
|
|
this._textures = e;
|
|
e.length && this.setFlags(1);
|
|
}
|
|
__extends(c, a);
|
|
c.prototype.update = function(a, b, c) {
|
|
this._bounds = c;
|
|
this._pathData = a;
|
|
this._paths = null;
|
|
this._textures = b;
|
|
};
|
|
c.prototype.getBounds = function() {
|
|
return this._bounds;
|
|
};
|
|
c.prototype.render = function(a, b, c) {
|
|
"undefined" === typeof c && (c = !1);
|
|
a.fillStyle = a.strokeStyle = "transparent";
|
|
var d = this._textures;
|
|
for (b = 0;b < d.length;b++) {
|
|
if (d[b].hasFlags(16)) {
|
|
return;
|
|
}
|
|
}
|
|
(b = this._pathData) && this._deserializePaths(b, a);
|
|
d = this._paths;
|
|
s(d);
|
|
k.enterTimeline("RenderableShape.render", this);
|
|
for (b = 0;b < d.length;b++) {
|
|
var e = d[b];
|
|
a.mozImageSmoothingEnabled = a.msImageSmoothingEnabled = a.imageSmoothingEnabled = e.smoothImage;
|
|
if (0 === e.type) {
|
|
a.fillStyle = e.style, c ? a.clip(e.path, "evenodd") : a.fill(e.path, "evenodd"), a.fillStyle = "transparent";
|
|
} else {
|
|
if (!c) {
|
|
a.strokeStyle = e.style;
|
|
var f = 1;
|
|
e.strokeProperties && (f = e.strokeProperties.scaleMode, a.lineWidth = e.strokeProperties.thickness, a.lineCap = e.strokeProperties.capsStyle, a.lineJoin = e.strokeProperties.jointsStyle, a.miterLimit = e.strokeProperties.miterLimit);
|
|
var g = a.lineWidth;
|
|
(g = 1 === g || 3 === g) && a.translate(.5, .5);
|
|
a.flashStroke(e.path, f);
|
|
g && a.translate(-.5, -.5);
|
|
a.strokeStyle = "transparent";
|
|
}
|
|
}
|
|
}
|
|
k.leaveTimeline("RenderableShape.render");
|
|
};
|
|
c.prototype._deserializePaths = function(a, d) {
|
|
s(!this._paths);
|
|
k.enterTimeline("RenderableShape.deserializePaths");
|
|
this._paths = [];
|
|
for (var f = null, g = null, l = 0, m = 0, n, p, q = !1, u = 0, F = 0, J = a.commands, A = a.coordinates, B = a.styles, z = B.position = 0, P = a.commandsPosition, D = 0;D < P;D++) {
|
|
switch(n = J[D], n) {
|
|
case 9:
|
|
s(z <= a.coordinatesPosition - 2);
|
|
q && f && (f.lineTo(u, F), g && g.lineTo(u, F));
|
|
q = !0;
|
|
l = u = A[z++] / 20;
|
|
m = F = A[z++] / 20;
|
|
f && f.moveTo(l, m);
|
|
g && g.moveTo(l, m);
|
|
break;
|
|
case 10:
|
|
s(z <= a.coordinatesPosition - 2);
|
|
l = A[z++] / 20;
|
|
m = A[z++] / 20;
|
|
f && f.lineTo(l, m);
|
|
g && g.lineTo(l, m);
|
|
break;
|
|
case 11:
|
|
s(z <= a.coordinatesPosition - 4);
|
|
n = A[z++] / 20;
|
|
p = A[z++] / 20;
|
|
l = A[z++] / 20;
|
|
m = A[z++] / 20;
|
|
f && f.quadraticCurveTo(n, p, l, m);
|
|
g && g.quadraticCurveTo(n, p, l, m);
|
|
break;
|
|
case 12:
|
|
s(z <= a.coordinatesPosition - 6);
|
|
n = A[z++] / 20;
|
|
p = A[z++] / 20;
|
|
var L = A[z++] / 20, M = A[z++] / 20, l = A[z++] / 20, m = A[z++] / 20;
|
|
f && f.bezierCurveTo(n, p, L, M, l, m);
|
|
g && g.bezierCurveTo(n, p, L, M, l, m);
|
|
break;
|
|
case 1:
|
|
s(4 <= B.bytesAvailable);
|
|
f = this._createPath(0, b.ColorUtilities.rgbaToCSSStyle(B.readUnsignedInt()), !1, null, l, m);
|
|
break;
|
|
case 3:
|
|
n = this._readBitmap(B, d);
|
|
f = this._createPath(0, n.style, n.smoothImage, null, l, m);
|
|
break;
|
|
case 2:
|
|
f = this._createPath(0, this._readGradient(B, d), !1, null, l, m);
|
|
break;
|
|
case 4:
|
|
f = null;
|
|
break;
|
|
case 5:
|
|
g = b.ColorUtilities.rgbaToCSSStyle(B.readUnsignedInt());
|
|
B.position += 1;
|
|
n = B.readByte();
|
|
p = c.LINE_CAPS_STYLES[B.readByte()];
|
|
L = c.LINE_JOINTS_STYLES[B.readByte()];
|
|
n = new e(A[z++] / 20, n, p, L, B.readByte());
|
|
g = this._createPath(1, g, !1, n, l, m);
|
|
break;
|
|
case 6:
|
|
g = this._createPath(2, this._readGradient(B, d), !1, null, l, m);
|
|
break;
|
|
case 7:
|
|
n = this._readBitmap(B, d);
|
|
g = this._createPath(2, n.style, n.smoothImage, null, l, m);
|
|
break;
|
|
case 8:
|
|
g = null;
|
|
break;
|
|
default:
|
|
t("Invalid command " + n + " encountered at index" + D + " of " + P);
|
|
}
|
|
}
|
|
s(0 === B.bytesAvailable);
|
|
s(D === P);
|
|
s(z === a.coordinatesPosition);
|
|
q && f && (f.lineTo(u, F), g && g.lineTo(u, F));
|
|
this._pathData = null;
|
|
k.leaveTimeline("RenderableShape.deserializePaths");
|
|
};
|
|
c.prototype._createPath = function(a, b, c, d, e, f) {
|
|
a = new p(a, b, c, d);
|
|
this._paths.push(a);
|
|
a.path.moveTo(e, f);
|
|
return a.path;
|
|
};
|
|
c.prototype._readMatrix = function(a) {
|
|
return new f(a.readFloat(), a.readFloat(), a.readFloat(), a.readFloat(), a.readFloat(), a.readFloat());
|
|
};
|
|
c.prototype._readGradient = function(a, c) {
|
|
s(34 <= a.bytesAvailable);
|
|
var d = a.readUnsignedByte(), e = 2 * a.readShort() / 255;
|
|
s(-1 <= e && 1 >= e);
|
|
var f = this._readMatrix(a), d = 16 === d ? c.createLinearGradient(-1, 0, 1, 0) : c.createRadialGradient(e, 0, 0, 0, 0, 1);
|
|
d.setTransform && d.setTransform(f.toSVGMatrix());
|
|
f = a.readUnsignedByte();
|
|
for (e = 0;e < f;e++) {
|
|
var g = a.readUnsignedByte() / 255, k = b.ColorUtilities.rgbaToCSSStyle(a.readUnsignedInt());
|
|
d.addColorStop(g, k);
|
|
}
|
|
a.position += 2;
|
|
return d;
|
|
};
|
|
c.prototype._readBitmap = function(a, b) {
|
|
s(30 <= a.bytesAvailable);
|
|
var c = a.readUnsignedInt(), d = this._readMatrix(a), e = a.readBoolean() ? "repeat" : "no-repeat", f = a.readBoolean(), c = this._textures[c];
|
|
s(c._canvas);
|
|
e = b.createPattern(c._canvas, e);
|
|
e.setTransform(d.toSVGMatrix());
|
|
return{style:e, smoothImage:f};
|
|
};
|
|
c.prototype._renderFallback = function(a) {
|
|
this.fillStyle || (this.fillStyle = b.ColorStyle.randomStyle());
|
|
var c = this._bounds;
|
|
a.save();
|
|
a.beginPath();
|
|
a.lineWidth = 2;
|
|
a.fillStyle = this.fillStyle;
|
|
a.fillRect(c.x, c.y, c.w, c.h);
|
|
a.restore();
|
|
};
|
|
c.LINE_CAPS_STYLES = ["round", "butt", "square"];
|
|
c.LINE_JOINTS_STYLES = ["round", "bevel", "miter"];
|
|
return c;
|
|
}(a);
|
|
k.RenderableShape = n;
|
|
var q = function() {
|
|
function a() {
|
|
this.align = this.leading = this.descent = this.ascent = this.width = this.y = this.x = 0;
|
|
this.runs = [];
|
|
}
|
|
a.prototype.addRun = function(b, c, d, e) {
|
|
if (d) {
|
|
a._measureContext.font = b;
|
|
var f = a._measureContext.measureText(d).width | 0;
|
|
this.runs.push(new l(b, c, d, f, e));
|
|
this.width += f;
|
|
}
|
|
};
|
|
a.prototype.wrap = function(b) {
|
|
var c = [this], d = this.runs, e = this;
|
|
e.width = 0;
|
|
e.runs = [];
|
|
for (var f = a._measureContext, g = 0;g < d.length;g++) {
|
|
var k = d[g], m = k.text;
|
|
k.text = "";
|
|
k.width = 0;
|
|
f.font = k.font;
|
|
for (var n = b, p = m.split(/[\s.-]/), q = 0, s = 0;s < p.length;s++) {
|
|
var t = p[s], A = m.substr(q, t.length + 1), B = f.measureText(A).width | 0;
|
|
if (B > n) {
|
|
do {
|
|
if (e.runs.push(k), e.width += k.width, k = new l(k.font, k.fillStyle, "", 0, k.underline), n = new a, n.y = e.y + e.descent + e.leading + e.ascent | 0, n.ascent = e.ascent, n.descent = e.descent, n.leading = e.leading, n.align = e.align, c.push(n), e = n, n = b - B, 0 > n) {
|
|
var B = A.length, z, P;
|
|
do {
|
|
B--, z = A.substr(0, B), P = f.measureText(z).width | 0;
|
|
} while (P > b);
|
|
k.text = z;
|
|
k.width = P;
|
|
A = A.substr(B);
|
|
B = f.measureText(A).width | 0;
|
|
}
|
|
} while (0 > n);
|
|
} else {
|
|
n -= B;
|
|
}
|
|
k.text += A;
|
|
k.width += B;
|
|
q += t.length + 1;
|
|
}
|
|
e.runs.push(k);
|
|
e.width += k.width;
|
|
}
|
|
return c;
|
|
};
|
|
a._measureContext = document.createElement("canvas").getContext("2d");
|
|
return a;
|
|
}();
|
|
k.TextLine = q;
|
|
var l = function() {
|
|
return function(a, b, c, d, e) {
|
|
"undefined" === typeof a && (a = "");
|
|
"undefined" === typeof b && (b = "");
|
|
"undefined" === typeof c && (c = "");
|
|
"undefined" === typeof d && (d = 0);
|
|
"undefined" === typeof e && (e = !1);
|
|
this.font = a;
|
|
this.fillStyle = b;
|
|
this.text = c;
|
|
this.width = d;
|
|
this.underline = e;
|
|
};
|
|
}();
|
|
k.TextRun = l;
|
|
n = function(a) {
|
|
function c(b) {
|
|
a.call(this, b);
|
|
this._flags = 3;
|
|
this.properties = {};
|
|
this._textBounds = b.clone();
|
|
this._textRunData = null;
|
|
this._plainText = "";
|
|
this._borderColor = this._backgroundColor = 0;
|
|
this._matrix = f.createIdentity();
|
|
this._coords = null;
|
|
this.textRect = b.clone();
|
|
this.lines = [];
|
|
}
|
|
__extends(c, a);
|
|
c.prototype.setBounds = function(a) {
|
|
this._bounds.set(a);
|
|
this._textBounds.set(a);
|
|
this.textRect.setElements(a.x + 2, a.y + 2, a.x - 2, a.x - 2);
|
|
};
|
|
c.prototype.setContent = function(a, b, c, d) {
|
|
this._textRunData = b;
|
|
this._plainText = a;
|
|
this._matrix.set(c);
|
|
this._coords = d;
|
|
this.lines = [];
|
|
};
|
|
c.prototype.setStyle = function(a, b) {
|
|
this._backgroundColor = a;
|
|
this._borderColor = b;
|
|
};
|
|
c.prototype.reflow = function(a, c) {
|
|
var d = this._textRunData;
|
|
if (d) {
|
|
var e = this._bounds, f = e.w - 4, g = this._plainText, l = this.lines, m = new q, n = 0, p = 0, s = 0, u = 0, w = 0, t = -1;
|
|
for (k.enterTimeline("RenderableText.reflow");d.position < d.length;) {
|
|
var z = d.readInt(), P = d.readInt(), D = d.readInt(), L = d.readInt(), L = L ? "swffont" + L : d.readUTF(), M = d.readInt(), V = d.readInt(), Q = d.readInt();
|
|
M > s && (s = M);
|
|
V > u && (u = V);
|
|
Q > w && (w = Q);
|
|
M = d.readBoolean();
|
|
V = "";
|
|
d.readBoolean() && (V += "italic");
|
|
M && (V += " bold");
|
|
D = V + " " + D + "px " + L;
|
|
L = d.readInt();
|
|
L = b.ColorUtilities.rgbToHex(L);
|
|
M = d.readInt();
|
|
-1 === t && (t = M);
|
|
d.readBoolean();
|
|
d.readInt();
|
|
d.readInt();
|
|
d.readInt();
|
|
d.readInt();
|
|
d.readInt();
|
|
for (var M = d.readBoolean(), U = "", V = !1;!V;z++) {
|
|
V = z >= P - 1;
|
|
Q = g[z];
|
|
if ("\r" !== Q && "\n" !== Q && (U += Q, z < g.length - 1)) {
|
|
continue;
|
|
}
|
|
m.addRun(D, L, U, M);
|
|
if (m.runs.length) {
|
|
n += s;
|
|
m.y = n | 0;
|
|
n += u + w;
|
|
m.ascent = s;
|
|
m.descent = u;
|
|
m.leading = w;
|
|
m.align = t;
|
|
if (c && m.width > f) {
|
|
for (m = m.wrap(f), U = 0;U < m.length;U++) {
|
|
var S = m[U], n = S.y + S.descent + S.leading;
|
|
l.push(S);
|
|
S.width > p && (p = S.width);
|
|
}
|
|
} else {
|
|
l.push(m), m.width > p && (p = m.width);
|
|
}
|
|
m = new q;
|
|
} else {
|
|
n += s + u + w;
|
|
}
|
|
U = "";
|
|
if (V) {
|
|
w = u = s = 0;
|
|
t = -1;
|
|
break;
|
|
}
|
|
"\r" === Q && "\n" === g[z + 1] && z++;
|
|
}
|
|
m.addRun(D, L, U, M);
|
|
}
|
|
d = this.textRect;
|
|
d.w = p;
|
|
d.h = n;
|
|
if (a) {
|
|
if (!c) {
|
|
f = p;
|
|
p = e.w;
|
|
switch(a) {
|
|
case 1:
|
|
d.x = p - (f + 4) >> 1;
|
|
break;
|
|
case 3:
|
|
d.x = p - (f + 4);
|
|
}
|
|
this._textBounds.setElements(d.x - 2, d.y - 2, d.w + 4, d.h + 4);
|
|
}
|
|
e.h = n + 4;
|
|
} else {
|
|
this._textBounds = e;
|
|
}
|
|
for (z = 0;z < l.length;z++) {
|
|
if (e = l[z], e.width < f) {
|
|
switch(e.align) {
|
|
case 1:
|
|
e.x = f - e.width | 0;
|
|
break;
|
|
case 2:
|
|
e.x = (f - e.width) / 2 | 0;
|
|
}
|
|
}
|
|
}
|
|
this.invalidatePaint();
|
|
k.leaveTimeline("RenderableText.reflow");
|
|
}
|
|
};
|
|
c.prototype.getBounds = function() {
|
|
return this._bounds;
|
|
};
|
|
c.prototype.render = function(a) {
|
|
k.enterTimeline("RenderableText.render");
|
|
a.save();
|
|
var c = this._textBounds;
|
|
this._backgroundColor && (a.fillStyle = b.ColorUtilities.rgbaToCSSStyle(this._backgroundColor), a.fillRect(c.x, c.y, c.w, c.h));
|
|
this._borderColor && (a.strokeStyle = b.ColorUtilities.rgbaToCSSStyle(this._borderColor), a.lineCap = "square", a.lineWidth = 1, a.strokeRect(c.x, c.y, c.w, c.h));
|
|
this._coords ? this._renderChars(a) : this._renderLines(a);
|
|
a.restore();
|
|
k.leaveTimeline("RenderableText.render");
|
|
};
|
|
c.prototype._renderChars = function(a) {
|
|
if (this._matrix) {
|
|
var b = this._matrix;
|
|
a.transform(b.a, b.b, b.c, b.d, b.tx, b.ty);
|
|
}
|
|
for (var b = this.lines, c = this._coords, d = c.position = 0;d < b.length;d++) {
|
|
for (var e = b[d].runs, f = 0;f < e.length;f++) {
|
|
var g = e[f];
|
|
a.font = g.font;
|
|
a.fillStyle = g.fillStyle;
|
|
for (var g = g.text, k = 0;k < g.length;k++) {
|
|
var l = c.readInt() / 20, m = c.readInt() / 20;
|
|
a.fillText(g[k], l, m);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
c.prototype._renderLines = function(a) {
|
|
var b = this._textBounds;
|
|
a.beginPath();
|
|
a.rect(b.x, b.y, b.w, b.h);
|
|
a.clip();
|
|
a.translate(b.x + 2, b.y + 2);
|
|
for (var b = this.lines, c = 0;c < b.length;c++) {
|
|
for (var d = b[c], e = d.x, f = d.y, g = d.runs, k = 0;k < g.length;k++) {
|
|
var l = g[k];
|
|
a.font = l.font;
|
|
a.fillStyle = l.fillStyle;
|
|
l.underline && a.fillRect(e, f + d.descent / 2 | 0, l.width, 1);
|
|
a.fillText(l.text, e, f);
|
|
e += l.width;
|
|
}
|
|
}
|
|
};
|
|
return c;
|
|
}(a);
|
|
k.RenderableText = n;
|
|
n = function(a) {
|
|
function b(c, d) {
|
|
a.call(this, new g(0, 0, c, d));
|
|
this._flags = 5;
|
|
this.properties = {};
|
|
}
|
|
__extends(b, a);
|
|
Object.defineProperty(b.prototype, "text", {get:function() {
|
|
return this._text;
|
|
}, set:function(a) {
|
|
this._text = a;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.render = function(a, b) {
|
|
a.save();
|
|
a.textBaseline = "top";
|
|
a.fillStyle = "white";
|
|
a.fillText(this.text, 0, 0);
|
|
a.restore();
|
|
};
|
|
return b;
|
|
}(a);
|
|
k.Label = n;
|
|
a = function(a) {
|
|
function c() {
|
|
a.call(this, g.createMaxI16());
|
|
this._flags = 14;
|
|
this.properties = {};
|
|
}
|
|
__extends(c, a);
|
|
c.prototype.render = function(a, c) {
|
|
function d(b) {
|
|
for (var c = Math.ceil((e.x + e.w) / b) * b, f = Math.floor(e.x / b) * b;f < c;f += b) {
|
|
a.moveTo(f + .5, e.y), a.lineTo(f + .5, e.y + e.h);
|
|
}
|
|
c = Math.ceil((e.y + e.h) / b) * b;
|
|
for (f = Math.floor(e.y / b) * b;f < c;f += b) {
|
|
a.moveTo(e.x, f + .5), a.lineTo(e.x + e.w, f + .5);
|
|
}
|
|
}
|
|
a.save();
|
|
var e = c || this.getBounds();
|
|
a.fillStyle = b.ColorStyle.VeryDark;
|
|
a.fillRect(e.x, e.y, e.w, e.h);
|
|
a.beginPath();
|
|
d(100);
|
|
a.lineWidth = 1;
|
|
a.strokeStyle = b.ColorStyle.Dark;
|
|
a.stroke();
|
|
a.beginPath();
|
|
d(500);
|
|
a.lineWidth = 1;
|
|
a.strokeStyle = b.ColorStyle.TabToolbar;
|
|
a.stroke();
|
|
a.beginPath();
|
|
d(1E3);
|
|
a.lineWidth = 3;
|
|
a.strokeStyle = b.ColorStyle.Toolbars;
|
|
a.stroke();
|
|
a.lineWidth = 3;
|
|
a.beginPath();
|
|
a.moveTo(-1048576, .5);
|
|
a.lineTo(1048576, .5);
|
|
a.moveTo(.5, -1048576);
|
|
a.lineTo(.5, 1048576);
|
|
a.strokeStyle = b.ColorStyle.Orange;
|
|
a.stroke();
|
|
a.restore();
|
|
};
|
|
return c;
|
|
}(a);
|
|
k.Grid = a;
|
|
})(b.GFX || (b.GFX = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = b.ColorUtilities.clampByte, f = b.Debug.assert, t = function() {
|
|
return function() {
|
|
};
|
|
}();
|
|
k.Filter = t;
|
|
var s = function(b) {
|
|
function d(a, c, d) {
|
|
b.call(this);
|
|
this.blurX = a;
|
|
this.blurY = c;
|
|
this.quality = d;
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(t);
|
|
k.BlurFilter = s;
|
|
s = function(b) {
|
|
function d(a, c, d, f, e, g, k, s, w, r, h) {
|
|
b.call(this);
|
|
this.alpha = a;
|
|
this.angle = c;
|
|
this.blurX = d;
|
|
this.blurY = f;
|
|
this.color = e;
|
|
this.distance = g;
|
|
this.hideObject = k;
|
|
this.inner = s;
|
|
this.knockout = w;
|
|
this.quality = r;
|
|
this.strength = h;
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(t);
|
|
k.DropshadowFilter = s;
|
|
t = function(b) {
|
|
function d(a, c, d, f, e, g, k, s) {
|
|
b.call(this);
|
|
this.alpha = a;
|
|
this.blurX = c;
|
|
this.blurY = d;
|
|
this.color = f;
|
|
this.inner = e;
|
|
this.knockout = g;
|
|
this.quality = k;
|
|
this.strength = s;
|
|
}
|
|
__extends(d, b);
|
|
return d;
|
|
}(t);
|
|
k.GlowFilter = t;
|
|
t = function() {
|
|
function b(d) {
|
|
f(20 === d.length);
|
|
this._m = new Float32Array(d);
|
|
}
|
|
b.prototype.clone = function() {
|
|
return new b(this._m);
|
|
};
|
|
b.prototype.set = function(b) {
|
|
this._m.set(b._m);
|
|
};
|
|
b.prototype.toWebGLMatrix = function() {
|
|
return new Float32Array(this._m);
|
|
};
|
|
b.prototype.asWebGLMatrix = function() {
|
|
return this._m.subarray(0, 16);
|
|
};
|
|
b.prototype.asWebGLVector = function() {
|
|
return this._m.subarray(16, 20);
|
|
};
|
|
b.prototype.getColorMatrix = function() {
|
|
var b = new Float32Array(20), a = this._m;
|
|
b[0] = a[0];
|
|
b[1] = a[4];
|
|
b[2] = a[8];
|
|
b[3] = a[12];
|
|
b[4] = 255 * a[16];
|
|
b[5] = a[1];
|
|
b[6] = a[5];
|
|
b[7] = a[9];
|
|
b[8] = a[13];
|
|
b[9] = 255 * a[17];
|
|
b[10] = a[2];
|
|
b[11] = a[6];
|
|
b[12] = a[10];
|
|
b[13] = a[14];
|
|
b[14] = 255 * a[18];
|
|
b[15] = a[3];
|
|
b[16] = a[7];
|
|
b[17] = a[11];
|
|
b[18] = a[15];
|
|
b[19] = 255 * a[19];
|
|
return b;
|
|
};
|
|
b.prototype.getColorTransform = function() {
|
|
var b = new Float32Array(8), a = this._m;
|
|
b[0] = a[0];
|
|
b[1] = a[5];
|
|
b[2] = a[10];
|
|
b[3] = a[15];
|
|
b[4] = 255 * a[16];
|
|
b[5] = 255 * a[17];
|
|
b[6] = 255 * a[18];
|
|
b[7] = 255 * a[19];
|
|
return b;
|
|
};
|
|
b.prototype.isIdentity = function() {
|
|
var b = this._m;
|
|
return 1 == b[0] && 0 == b[1] && 0 == b[2] && 0 == b[3] && 0 == b[4] && 1 == b[5] && 0 == b[6] && 0 == b[7] && 0 == b[8] && 0 == b[9] && 1 == b[10] && 0 == b[11] && 0 == b[12] && 0 == b[13] && 0 == b[14] && 1 == b[15] && 0 == b[16] && 0 == b[17] && 0 == b[18] && 0 == b[19];
|
|
};
|
|
b.createIdentity = function() {
|
|
return new b([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0]);
|
|
};
|
|
b.prototype.setMultipliersAndOffsets = function(b, a, c, f, g, e, k, l) {
|
|
for (var m = this._m, s = 0;s < m.length;s++) {
|
|
m[s] = 0;
|
|
}
|
|
m[0] = b;
|
|
m[5] = a;
|
|
m[10] = c;
|
|
m[15] = f;
|
|
m[16] = g;
|
|
m[17] = e;
|
|
m[18] = k;
|
|
m[19] = l;
|
|
};
|
|
b.prototype.transformRGBA = function(b) {
|
|
var a = b >> 24 & 255, c = b >> 16 & 255, f = b >> 8 & 255, k = b & 255, e = this._m;
|
|
b = g(a * e[0] + c * e[1] + f * e[2] + k * e[3] + e[16]);
|
|
var m = g(a * e[4] + c * e[5] + f * e[6] + k * e[7] + e[17]), l = g(a * e[8] + c * e[9] + f * e[10] + k * e[11] + e[18]), a = g(a * e[12] + c * e[13] + f * e[14] + k * e[15] + e[19]);
|
|
return b << 24 | m << 16 | l << 8 | a;
|
|
};
|
|
b.prototype.multiply = function(b) {
|
|
var a = this._m, c = b._m;
|
|
b = a[0];
|
|
var f = a[1], g = a[2], e = a[3], k = a[4], l = a[5], m = a[6], s = a[7], r = a[8], h = a[9], t = a[10], y = a[11], G = a[12], I = a[13], C = a[14], E = a[15], O = a[16], K = a[17], F = a[18], J = a[19], A = c[0], B = c[1], z = c[2], P = c[3], D = c[4], L = c[5], M = c[6], V = c[7], Q = c[8], U = c[9], S = c[10], aa = c[11], $ = c[12], ea = c[13], Z = c[14], v = c[15], X = c[16], ba = c[17], R = c[18], c = c[19];
|
|
a[0] = b * A + k * B + r * z + G * P;
|
|
a[1] = f * A + l * B + h * z + I * P;
|
|
a[2] = g * A + m * B + t * z + C * P;
|
|
a[3] = e * A + s * B + y * z + E * P;
|
|
a[4] = b * D + k * L + r * M + G * V;
|
|
a[5] = f * D + l * L + h * M + I * V;
|
|
a[6] = g * D + m * L + t * M + C * V;
|
|
a[7] = e * D + s * L + y * M + E * V;
|
|
a[8] = b * Q + k * U + r * S + G * aa;
|
|
a[9] = f * Q + l * U + h * S + I * aa;
|
|
a[10] = g * Q + m * U + t * S + C * aa;
|
|
a[11] = e * Q + s * U + y * S + E * aa;
|
|
a[12] = b * $ + k * ea + r * Z + G * v;
|
|
a[13] = f * $ + l * ea + h * Z + I * v;
|
|
a[14] = g * $ + m * ea + t * Z + C * v;
|
|
a[15] = e * $ + s * ea + y * Z + E * v;
|
|
a[16] = b * X + k * ba + r * R + G * c + O;
|
|
a[17] = f * X + l * ba + h * R + I * c + K;
|
|
a[18] = g * X + m * ba + t * R + C * c + F;
|
|
a[19] = e * X + s * ba + y * R + E * c + J;
|
|
};
|
|
Object.defineProperty(b.prototype, "alphaMultiplier", {get:function() {
|
|
return this._m[15];
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.hasOnlyAlphaMultiplier = function() {
|
|
var b = this._m;
|
|
return 1 == b[0] && 0 == b[1] && 0 == b[2] && 0 == b[3] && 0 == b[4] && 1 == b[5] && 0 == b[6] && 0 == b[7] && 0 == b[8] && 0 == b[9] && 1 == b[10] && 0 == b[11] && 0 == b[12] && 0 == b[13] && 0 == b[14] && 0 == b[16] && 0 == b[17] && 0 == b[18] && 0 == b[19];
|
|
};
|
|
b.prototype.equals = function(b) {
|
|
if (!b) {
|
|
return!1;
|
|
}
|
|
var a = this._m;
|
|
b = b._m;
|
|
for (var c = 0;20 > c;c++) {
|
|
if (.001 < Math.abs(a[c] - b[c])) {
|
|
return!1;
|
|
}
|
|
}
|
|
return!0;
|
|
};
|
|
return b;
|
|
}();
|
|
k.ColorMatrix = t;
|
|
})(b.GFX || (b.GFX = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
k.timelineBuffer = new b.Tools.Profiler.TimelineBuffer("Player");
|
|
k.counter = new b.Metrics.Counter(!0);
|
|
k.writer = null;
|
|
k.enterTimeline = function(b, f) {
|
|
k.writer && k.writer.enter(b);
|
|
};
|
|
k.leaveTimeline = function(b, f) {
|
|
k.writer && k.writer.leave(b);
|
|
};
|
|
})(b.Player || (b.Player = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
var Shumway$$inline_284 = Shumway || (Shumway = {});
|
|
Shumway$$inline_284.playerOptions = Shumway$$inline_284.Settings.shumwayOptions.register(new Shumway$$inline_284.Options.OptionSet("Player Options"));
|
|
Shumway$$inline_284.frameEnabledOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Enable Frame Execution", "boolean", !0, "Enable frame execution."));
|
|
Shumway$$inline_284.timerEnabledOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Enable Timers", "boolean", !0, "Enable timer events."));
|
|
Shumway$$inline_284.pumpEnabledOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Enable Pump", "boolean", !0, "Enable display tree serialization."));
|
|
Shumway$$inline_284.pumpRateOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Pump Rate", "number", 80, "Number of times / second that the display list is synchronized.", {range:{min:1, max:120, step:1}}));
|
|
Shumway$$inline_284.frameRateOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Frame Rate", "number", -1, "Override a movie's frame rate, set to -1 to use the movies default frame rate.", {range:{min:-1, max:120, step:1}}));
|
|
Shumway$$inline_284.tracePlayerOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("tp", "Trace Player", "number", 0, "Trace player every n frames.", {range:{min:0, max:512, step:1}}));
|
|
Shumway$$inline_284.traceMouseEventOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("tme", "Trace Mouse Events", "boolean", !1, "Trace mouse events."));
|
|
Shumway$$inline_284.frameRateMultiplierOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Frame Rate Multiplier", "number", 1, "Play frames at a faster rate.", {range:{min:1, max:16, step:1}}));
|
|
Shumway$$inline_284.dontSkipFramesOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Disables Frame Skipping", "boolean", !1, "Play all frames, e.g. no skipping frame during throttle."));
|
|
Shumway$$inline_284.playAllSymbolsOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Play Symbols", "boolean", !1, "Plays all SWF symbols automatically."));
|
|
Shumway$$inline_284.playSymbolOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Play Symbol Number", "number", 0, "Select symbol by Id.", {range:{min:0, max:2E4, step:1}}));
|
|
Shumway$$inline_284.playSymbolFrameDurationOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Play Symbol Duration", "number", 0, "How many frames to play, 0 for all frames of the movie clip.", {range:{min:0, max:128, step:1}}));
|
|
Shumway$$inline_284.playSymbolCountOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Play Symbol Count", "number", -1, "Select symbol count.", {range:{min:0, max:2E4, step:1}}));
|
|
Shumway$$inline_284.stageScaleOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("", "Stage Scale", "number", 1, "Scales the symbols.", {range:{min:.1, max:16, step:.01}}));
|
|
Shumway$$inline_284.useParsingWorkerOption = Shumway$$inline_284.playerOptions.register(new Shumway$$inline_284.Options.Option("useWorker", "Use Parsing Worker", "boolean", !0, "Determines whether to spawn a DOM worker thread for parsing"));
|
|
(function(b) {
|
|
var k = function() {
|
|
function b() {
|
|
this._expectedNextFrameAt = performance.now();
|
|
this._drawStats = [];
|
|
this._drawsSkipped = this._drawStarted = this._drawStatsSum = 0;
|
|
this._expectedNextFrameAt = performance.now();
|
|
this._onTime = !0;
|
|
this._trackDelta = !1;
|
|
this._onTimeDelta = this._delta = 0;
|
|
}
|
|
Object.defineProperty(b.prototype, "shallSkipDraw", {get:function() {
|
|
if (this._drawsSkipped >= b.MAX_DRAWS_TO_SKIP) {
|
|
return!1;
|
|
}
|
|
var f = this._drawStats.length < b.STATS_TO_REMEMBER ? 0 : this._drawStatsSum / this._drawStats.length;
|
|
return performance.now() + f + b.INTERVAL_PADDING_MS > this._expectedNextFrameAt;
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "nextFrameIn", {get:function() {
|
|
return Math.max(0, this._expectedNextFrameAt - performance.now());
|
|
}, enumerable:!0, configurable:!0});
|
|
Object.defineProperty(b.prototype, "isOnTime", {get:function() {
|
|
return this._onTime;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.startFrame = function(f) {
|
|
var k = f = 1E3 / f, s = this._onTimeDelta + this._delta;
|
|
0 !== s && (0 > s ? k *= b.SPEED_ADJUST_RATE : 0 < s && (k /= b.SPEED_ADJUST_RATE), this._onTimeDelta += f - k);
|
|
this._expectedNextFrameAt += k;
|
|
this._onTime = !0;
|
|
};
|
|
b.prototype.endFrame = function() {
|
|
var f = performance.now() + b.INTERVAL_PADDING_MS;
|
|
f > this._expectedNextFrameAt && (this._trackDelta && (this._onTimeDelta += this._expectedNextFrameAt - f, console.log(this._onTimeDelta)), this._expectedNextFrameAt = f, this._onTime = !1);
|
|
};
|
|
b.prototype.startDraw = function() {
|
|
this._drawsSkipped = 0;
|
|
this._drawStarted = performance.now();
|
|
};
|
|
b.prototype.endDraw = function() {
|
|
var f = performance.now() - this._drawStarted;
|
|
this._drawStats.push(f);
|
|
for (this._drawStatsSum += f;this._drawStats.length > b.STATS_TO_REMEMBER;) {
|
|
this._drawStatsSum -= this._drawStats.shift();
|
|
}
|
|
};
|
|
b.prototype.skipDraw = function() {
|
|
this._drawsSkipped++;
|
|
};
|
|
b.prototype.setDelta = function(b) {
|
|
this._trackDelta && (this._delta = b);
|
|
};
|
|
b.prototype.startTrackDelta = function() {
|
|
this._trackDelta = !0;
|
|
};
|
|
b.prototype.endTrackDelta = function() {
|
|
this._trackDelta && (this._trackDelta = !1, this._onTimeDelta = this._delta = 0);
|
|
};
|
|
b.STATS_TO_REMEMBER = 50;
|
|
b.MAX_DRAWS_TO_SKIP = 2;
|
|
b.INTERVAL_PADDING_MS = 4;
|
|
b.SPEED_ADJUST_RATE = .9;
|
|
return b;
|
|
}();
|
|
b.FrameScheduler = k;
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.AVM2.AS.flash, k = b.AVM2.AS.flash.display, s = b.AVM2.AS.flash.display.BitmapData, m = b.AVM2.AS.flash.display.DisplayObjectFlags, d = b.AVM2.AS.flash.display.BlendMode, a = b.AVM2.AS.flash.display.PixelSnapping, c = b.AVM2.AS.flash.geom.Point, n = b.Bounds, p = b.Debug.assert, e = b.Player.writer, q = function() {
|
|
function c() {
|
|
this.phase = 0;
|
|
this.roots = null;
|
|
}
|
|
c.prototype.begin = function(a) {
|
|
this.roots = [a];
|
|
};
|
|
c.prototype.remoteObjects = function() {
|
|
this.phase = 0;
|
|
for (var a = this.roots, c = 0;c < a.length;c++) {
|
|
b.Player.enterTimeline("remoting objects"), this.writeDisplayObject(a[c]), b.Player.leaveTimeline("remoting objects");
|
|
}
|
|
};
|
|
c.prototype.remoteReferences = function() {
|
|
this.phase = 1;
|
|
for (var a = this.roots, c = 0;c < a.length;c++) {
|
|
b.Player.enterTimeline("remoting references"), this.writeDisplayObject(a[c]), b.Player.leaveTimeline("remoting references");
|
|
}
|
|
};
|
|
c.prototype.writeDisplayObject = function(a) {
|
|
var c = this, d = this.roots;
|
|
a.visit(function(a) {
|
|
c.writeUpdateFrame(a);
|
|
d && a.mask && b.ArrayUtilities.pushUnique(d, a.mask._findFurthestAncestorOrSelf());
|
|
return 0;
|
|
}, 16, m.Dirty);
|
|
};
|
|
c.prototype.writeStage = function(a) {
|
|
e && e.writeLn("Sending Stage");
|
|
this.output.writeInt(104);
|
|
this.output.writeInt(a._id);
|
|
this.output.writeInt(a.color);
|
|
this._writeRectangle(new n(0, 0, 20 * a.stageWidth, 20 * a.stageHeight));
|
|
};
|
|
c.prototype.writeGraphics = function(a) {
|
|
if (a._isDirty) {
|
|
e && e.writeLn("Sending Graphics: " + a._id);
|
|
for (var b = a._textures, c = b.length, d = 0;d < c;d++) {
|
|
this.writeBitmapData(b[d]);
|
|
}
|
|
this.output.writeInt(101);
|
|
this.output.writeInt(a._id);
|
|
this.output.writeInt(-1);
|
|
this._writeRectangle(a._getContentBounds());
|
|
this._writeAsset(a._graphicsData.toPlainObject());
|
|
this.output.writeInt(c);
|
|
for (d = 0;d < c;d++) {
|
|
this.output.writeInt(b[d]._id);
|
|
}
|
|
a._isDirty = !1;
|
|
}
|
|
};
|
|
c.prototype.writeNetStream = function(a) {
|
|
a._isDirty && (e && e.writeLn("Sending NetStream: " + a._id), this.output.writeInt(105), this.output.writeInt(a._id), this.output.writeUTF(a._url), a._isDirty = !1);
|
|
};
|
|
c.prototype.writeBitmapData = function(a) {
|
|
a._isDirty && (e && e.writeLn("Sending BitmapData: " + a._id), this.output.writeInt(102), this.output.writeInt(a._id), this.output.writeInt(a._symbol ? a._symbol.id : -1), this._writeRectangle(a._getContentBounds()), this.output.writeInt(a._type), this._writeAsset(a._dataBuffer.toPlainObject()), a._isDirty = !1);
|
|
};
|
|
c.prototype.writeTextContent = function(a) {
|
|
if (a.flags & b.TextContentFlags.Dirty) {
|
|
e && e.writeLn("Sending TextContent: " + a._id);
|
|
this.output.writeInt(103);
|
|
this.output.writeInt(a._id);
|
|
this.output.writeInt(-1);
|
|
this._writeRectangle(a.bounds);
|
|
this._writeMatrix(a.matrix || f.geom.Matrix.FROZEN_IDENTITY_MATRIX);
|
|
this.output.writeInt(a.backgroundColor);
|
|
this.output.writeInt(a.borderColor);
|
|
this.output.writeInt(a.autoSize);
|
|
this.output.writeBoolean(a.wordWrap);
|
|
this._writeAsset(a.plainText);
|
|
this._writeAsset(a.textRunData.toPlainObject());
|
|
var c = a.coords;
|
|
if (c) {
|
|
var d = c.length;
|
|
this.output.writeInt(d);
|
|
for (var g = 0;g < d;g++) {
|
|
this.output.writeInt(c[g]);
|
|
}
|
|
} else {
|
|
this.output.writeInt(0);
|
|
}
|
|
a.flags &= ~b.TextContentFlags.Dirty;
|
|
}
|
|
};
|
|
c.prototype.writeFont = function(a) {
|
|
if ("embedded" === a.fontType) {
|
|
e && e.writeLn("Sending Font: " + a._id);
|
|
var b = a._symbol;
|
|
p(b);
|
|
this.output.writeInt(200);
|
|
this.output.writeInt(a._id);
|
|
this.output.writeBoolean(b.bold);
|
|
this.output.writeBoolean(b.italic);
|
|
this._writeAsset(b.data);
|
|
}
|
|
};
|
|
c.prototype.writeClip = function(a) {
|
|
if (0 <= a._clipDepth && a._parent) {
|
|
var b = a._parent.getChildIndex(a);
|
|
a = a._parent.getClipDepthIndex(a._clipDepth);
|
|
for (var c = b + 1;c <= b;c++) {
|
|
}
|
|
p(0 <= a - b);
|
|
this.output.writeInt(a - b);
|
|
} else {
|
|
this.output.writeInt(-1);
|
|
}
|
|
};
|
|
c.prototype.writeUpdateFrame = function(b) {
|
|
this.output.writeInt(100);
|
|
this.output.writeInt(b._id);
|
|
e && e.writeLn("Sending UpdateFrame: " + b.debugName());
|
|
var c = !1, g = b._hasFlags(1048576), h = b._hasFlags(67108864), l = b._hasFlags(536870912), n = null;
|
|
f.media.Video.isType(b) && (n = b);
|
|
var p = !1;
|
|
1 === this.phase && (p = b._hasAnyFlags(65011712), c = b._hasFlags(134217728));
|
|
var q = null;
|
|
k.Bitmap.isType(b) && (q = b);
|
|
var s = b._hasFlags(268435456), E;
|
|
E = 0 | (g ? 1 : 0) | (h ? 8 : 0);
|
|
E |= c ? 64 : 0;
|
|
E |= s ? 128 : 0;
|
|
E |= l ? 32 : 0;
|
|
E |= p ? 4 : 0;
|
|
this.output.writeInt(E);
|
|
g && this._writeMatrix(b._getMatrix());
|
|
h && this._writeColorTransform(b._colorTransform);
|
|
c && this.output.writeInt(b.mask ? b.mask._id : -1);
|
|
s && this.writeClip(b);
|
|
l && (this.output.writeInt(d.toNumber(b._blendMode)), this.output.writeBoolean(b._hasFlags(1)), q ? (this.output.writeInt(a.toNumber(q.pixelSnapping)), this.output.writeInt(q.smoothing ? 1 : 0)) : (this.output.writeInt(a.toNumber(a.AUTO)), this.output.writeInt(1)));
|
|
c = b._getGraphics();
|
|
g = b._getTextContent();
|
|
if (p) {
|
|
e && e.enter("Children: {");
|
|
if (q) {
|
|
q.bitmapData ? (this.output.writeInt(1), this.output.writeInt(134217728 | q.bitmapData._id)) : this.output.writeInt(0);
|
|
} else {
|
|
if (n) {
|
|
n._netStream ? (this.output.writeInt(1), this.output.writeInt(134217728 | n._netStream._id)) : this.output.writeInt(0);
|
|
} else {
|
|
if (h = c || g ? 1 : 0, (p = b._children) && (h += p.length), this.output.writeInt(h), c ? (e && e.writeLn("Reference Graphics: " + c._id), this.output.writeInt(134217728 | c._id)) : g && (e && e.writeLn("Reference TextContent: " + g._id), this.output.writeInt(134217728 | g._id)), p) {
|
|
for (h = 0;h < p.length;h++) {
|
|
e && e.writeLn("Reference DisplayObject: " + p[h].debugName()), this.output.writeInt(p[h]._id), 0 <= p[h]._clipDepth && p[h]._setFlags(268435456);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
e && e.leave("}");
|
|
}
|
|
1 === this.phase && b._removeFlags(m.Dirty);
|
|
c ? this.writeGraphics(c) : g ? this.writeTextContent(g) : q ? q.bitmapData && this.writeBitmapData(q.bitmapData) : n && n._netStream && this.writeNetStream(n._netStream);
|
|
};
|
|
c.prototype.writeDrawToBitmap = function(a, b, c, e, f, g, k) {
|
|
"undefined" === typeof c && (c = null);
|
|
"undefined" === typeof e && (e = null);
|
|
"undefined" === typeof f && (f = null);
|
|
"undefined" === typeof g && (g = null);
|
|
"undefined" === typeof k && (k = !1);
|
|
this.output.writeInt(201);
|
|
this.output.writeInt(a._id);
|
|
s.isType(b) ? this.output.writeInt(134217728 | b._id) : this.output.writeInt(b._id);
|
|
a = 0 | (c ? 1 : 0) | (e ? 8 : 0);
|
|
a |= g ? 16 : 0;
|
|
this.output.writeInt(a);
|
|
c && this._writeMatrix(c);
|
|
e && this._writeColorTransform(e);
|
|
g && this._writeRectangle(n.FromRectangle(g));
|
|
this.output.writeInt(d.toNumber(f));
|
|
this.output.writeBoolean(k);
|
|
};
|
|
c.prototype._writeMatrix = function(a) {
|
|
this.output.write6Floats(a.a, a.b, a.c, a.d, a.tx, a.ty);
|
|
};
|
|
c.prototype._writeRectangle = function(a) {
|
|
this.output.write4Ints(a.xMin, a.yMin, a.width, a.height);
|
|
};
|
|
c.prototype._writeAsset = function(a) {
|
|
this.output.writeInt(this.outputAssets.length);
|
|
this.outputAssets.push(a);
|
|
};
|
|
c.prototype._writeColorTransform = function(a) {
|
|
var b = this.output, c = a.redMultiplier, d = a.greenMultiplier, e = a.blueMultiplier, f = a.alphaMultiplier, g = a.redOffset, k = a.greenOffset, l = a.blueOffset;
|
|
a = a.alphaOffset;
|
|
g === k && k === l && l === a && 0 === a && c === d && d === e && 1 === e ? 1 === f ? b.writeInt(0) : (b.writeInt(1), b.writeFloat(f)) : (b.writeInt(2), b.writeFloat(c), b.writeFloat(d), b.writeFloat(e), b.writeFloat(f), b.writeInt(g), b.writeInt(k), b.writeInt(l), b.writeInt(a));
|
|
};
|
|
c.prototype.writeRequestBitmapData = function(a) {
|
|
e && e.writeLn("Sending BitmapData Request");
|
|
this.output.writeInt(106);
|
|
this.output.writeInt(a._id);
|
|
};
|
|
c.prototype.writeDecodeImage = function(a, b, c) {
|
|
e && e.writeLn("Sending DecodeImage");
|
|
this.output.writeInt(107);
|
|
this.output.writeInt(a);
|
|
this.output.writeInt(b);
|
|
this._writeAsset(c);
|
|
};
|
|
return c;
|
|
}();
|
|
g.PlayerChannelSerializer = q;
|
|
q = function() {
|
|
function a() {
|
|
}
|
|
a.prototype._readAsset = function() {
|
|
var a = this.input.readInt(), b = this.inputAssets[a];
|
|
this.inputAssets[a] = null;
|
|
return b;
|
|
};
|
|
a.prototype.read = function() {
|
|
var a = this.input.readInt();
|
|
switch(a) {
|
|
case 300:
|
|
return this._readMouseEvent();
|
|
case 301:
|
|
return this._readKeyboardEvent();
|
|
case 302:
|
|
return this._readFocusEvent();
|
|
case 108:
|
|
return this._readDecodeImageResponse();
|
|
}
|
|
p(!1, "Unknown MessageReader tag: " + a);
|
|
};
|
|
a.prototype._readDecodeImageResponse = function() {
|
|
var a = this.input, b = a.readInt(), c = a.readInt(), d = this._readAsset(), e = a.readInt(), a = a.readInt();
|
|
return{tag:108, promiseId:b, type:c, data:d, width:e, height:a};
|
|
};
|
|
a.prototype._readFocusEvent = function() {
|
|
return{tag:302, type:this.input.readInt()};
|
|
};
|
|
a.prototype._readMouseEvent = function() {
|
|
var a = this.input, d = a.readInt(), d = b.Remoting.MouseEventNames[d], e = a.readFloat(), f = a.readFloat(), g = a.readInt(), a = a.readInt();
|
|
return{tag:300, type:d, point:new c(e, f), ctrlKey:!!(a & 1), altKey:!!(a & 2), shiftKey:!!(a & 4), buttons:g};
|
|
};
|
|
a.prototype._readKeyboardEvent = function() {
|
|
var a = this.input, c = a.readInt(), c = b.Remoting.KeyboardEventNames[c], d = a.readInt(), e = a.readInt(), f = a.readInt(), a = a.readInt();
|
|
return{tag:301, type:c, keyCode:d, charCode:e, location:f, ctrlKey:!!(a & 1), altKey:!!(a & 2), shiftKey:!!(a & 4)};
|
|
};
|
|
return a;
|
|
}();
|
|
g.PlayerChannelDeserializer = q;
|
|
})(k.Player || (k.Player = {}));
|
|
})(b.Remoting || (b.Remoting = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
var g = b.Debug.assert, f = b.AVM2.AS.flash, t = b.ArrayUtilities.DataBuffer, s = b.AVM2.Runtime.AVM2, m = b.AVM2.AS.avm1lib, d = b.AVM2.AS.flash.events.Event, a = b.AVM2.AS.flash.display.DisplayObject, c = b.AVM2.AS.flash.events.EventDispatcher, n = b.AVM2.AS.flash.display.MovieClip, p = b.AVM2.AS.flash.display.Loader, e = b.AVM2.AS.flash.ui.MouseEventDispatcher, q = b.AVM2.AS.flash.ui.KeyboardEventDispatcher, l = function() {
|
|
function l() {
|
|
this._framesPlayed = 0;
|
|
this._pendingPromises = [];
|
|
this.externalCallback = null;
|
|
this._lastPumpTime = 0;
|
|
this._hasFocus = this._isPageVisible = !0;
|
|
this._keyboardEventDispatcher = new q;
|
|
this._mouseEventDispatcher = new e;
|
|
this._writer = new b.IndentingWriter;
|
|
s.instance.globals["Shumway.Player.Utils"] = this;
|
|
}
|
|
l.prototype._getNextAvailablePromiseId = function() {
|
|
for (var a = this._pendingPromises.length, b = 0;b < a;b++) {
|
|
if (!this._pendingPromises[b]) {
|
|
return b;
|
|
}
|
|
}
|
|
return a;
|
|
};
|
|
l.prototype.onSendUpdates = function(a, b, c) {
|
|
throw Error("This method is abstract");
|
|
};
|
|
l.prototype._shouldThrottleDownRendering = function() {
|
|
return!this._isPageVisible;
|
|
};
|
|
l.prototype._shouldThrottleDownFrameExecution = function() {
|
|
return!this._isPageVisible;
|
|
};
|
|
l.prototype.load = function(a, c) {
|
|
g(!this._loader, "Can't load twice.");
|
|
var d = this, e = this._stage = new f.display.Stage, k = this._loader = f.display.Loader.getRootLoader(), l = this._loaderInfo = k.contentLoaderInfo;
|
|
b.playAllSymbolsOption.value ? (this._playAllSymbols(), l._allowCodeExecution = !1) : k._startPromise.then(function() {
|
|
l.actionScriptVersion === f.display.ActionScriptVersion.ACTIONSCRIPT2 ? (m.AVM1Key.asCallPublicProperty("__bind", [e]), m.AVM1Mouse.asCallPublicProperty("__bind", [e]), n.frameNavigationModel = 1) : 10 > l.swfVersion && (n.frameNavigationModel = 2);
|
|
var a = void 0 !== d.defaultStageColor ? d.defaultStageColor : l._colorRGBA, c = k.content;
|
|
e._loaderInfo = l;
|
|
e.frameRate = l.frameRate;
|
|
e.setStageWidth(l.width);
|
|
e.setStageHeight(l.height);
|
|
e.setStageColor(b.ColorUtilities.RGBAToARGB(a));
|
|
e.addTimelineObjectAtDepth(c, 0);
|
|
d._enterLoops();
|
|
});
|
|
if (c) {
|
|
var p = b.Timeline.BinarySymbol.FromData({id:-1, data:c}), q = p.symbolClass.initializeFrom(p);
|
|
p.symbolClass.instanceConstructorNoInitialize.call(q);
|
|
this._loader.loadBytes(q);
|
|
} else {
|
|
this._loader.load(new f.net.URLRequest(a));
|
|
}
|
|
};
|
|
l.prototype.processUpdates = function(a, e) {
|
|
var f = new b.Remoting.Player.PlayerChannelDeserializer;
|
|
f.input = a;
|
|
f.inputAssets = e;
|
|
f = f.read();
|
|
switch(f.tag) {
|
|
case 301:
|
|
var k = this._stage.focus ? this._stage.focus : this._stage;
|
|
this._keyboardEventDispatcher.target = k;
|
|
this._keyboardEventDispatcher.dispatchKeyboardEvent(f);
|
|
break;
|
|
case 300:
|
|
this._mouseEventDispatcher.stage = this._stage;
|
|
k = this._mouseEventDispatcher.handleMouseEvent(f);
|
|
b.traceMouseEventOption.value && this._writer.writeLn("Mouse Event: type: " + f.type + ", target: " + k + ", name: " + k._name);
|
|
break;
|
|
case 302:
|
|
switch(f.type) {
|
|
case 0:
|
|
this._isPageVisible = !1;
|
|
break;
|
|
case 1:
|
|
this._isPageVisible = !0;
|
|
break;
|
|
case 2:
|
|
this._hasFocus = !1;
|
|
break;
|
|
case 3:
|
|
c.broadcastEventDispatchQueue.dispatchEvent(d.getBroadcastInstance(d.ACTIVATE)), this._hasFocus = !0;
|
|
}
|
|
break;
|
|
case 108:
|
|
var k = f.promiseId, l = this._pendingPromises[k];
|
|
g(l, "We should be resolving an unresolved decode image promise at this point.");
|
|
l.resolve(f);
|
|
this._pendingPromises[k] = null;
|
|
}
|
|
};
|
|
l.prototype._enterLoops = function() {
|
|
this._enterEventLoop();
|
|
};
|
|
l.prototype._pumpDisplayListUpdates = function() {
|
|
this.syncDisplayObject(this._stage);
|
|
};
|
|
l.prototype.syncDisplayObject = function(a, c) {
|
|
"undefined" === typeof c && (c = !0);
|
|
var d = new t, e = [], g = new b.Remoting.Player.PlayerChannelSerializer;
|
|
g.output = d;
|
|
g.outputAssets = e;
|
|
f.display.Stage.isType(a) && g.writeStage(a);
|
|
g.begin(a);
|
|
g.remoteObjects();
|
|
g.remoteReferences();
|
|
d.writeInt(0);
|
|
k.enterTimeline("remoting assets");
|
|
d = this.onSendUpdates(d, e, c);
|
|
k.leaveTimeline("remoting assets");
|
|
return d;
|
|
};
|
|
l.prototype.requestBitmapData = function(a) {
|
|
var c = new t, d = [], e = new b.Remoting.Player.PlayerChannelSerializer;
|
|
e.output = c;
|
|
e.outputAssets = d;
|
|
e.writeRequestBitmapData(a);
|
|
c.writeInt(0);
|
|
return this.onSendUpdates(c, d, !1);
|
|
};
|
|
l.prototype.decodeImage = function(a, c) {
|
|
g(5 === a.type || 6 === a.type || 4 === a.type, "No need to decode any other image formats.");
|
|
var d = new t, e = [], f = new b.Remoting.Player.PlayerChannelSerializer;
|
|
f.output = d;
|
|
f.outputAssets = e;
|
|
var k = this._getNextAvailablePromiseId();
|
|
f.writeDecodeImage(k, a.type, a.data);
|
|
d.writeInt(0);
|
|
this.onSendUpdates(d, e);
|
|
(this._pendingPromises[k] = new b.PromiseWrapper).promise.then(function(b) {
|
|
a.data = b.data;
|
|
a.type = b.type;
|
|
a.width = b.width;
|
|
a.height = b.height;
|
|
c(void 0);
|
|
});
|
|
};
|
|
l.prototype.registerFont = function(a) {
|
|
var c = new t, d = [], e = new b.Remoting.Player.PlayerChannelSerializer;
|
|
e.output = c;
|
|
e.outputAssets = d;
|
|
e.writeFont(a);
|
|
this.onSendUpdates(c, d);
|
|
};
|
|
l.prototype.drawToBitmap = function(a, c, d, e, g, l, m) {
|
|
"undefined" === typeof d && (d = null);
|
|
"undefined" === typeof e && (e = null);
|
|
"undefined" === typeof g && (g = null);
|
|
"undefined" === typeof l && (l = null);
|
|
"undefined" === typeof m && (m = !1);
|
|
var n = new t, p = [], q = new b.Remoting.Player.PlayerChannelSerializer;
|
|
q.output = n;
|
|
q.outputAssets = p;
|
|
q.writeBitmapData(a);
|
|
f.display.BitmapData.isType(c) ? q.writeBitmapData(c) : (q.begin(c), q.remoteObjects(), q.remoteReferences());
|
|
q.writeDrawToBitmap(a, c, d, e, g, l, m);
|
|
n.writeInt(0);
|
|
k.enterTimeline("sendUpdates");
|
|
this.onSendUpdates(n, p, !1);
|
|
k.leaveTimeline("sendUpdates");
|
|
};
|
|
l.prototype.executeFSCommand = function(a, b) {
|
|
switch(a) {
|
|
case "quit":
|
|
this._leaveEventLoop();
|
|
}
|
|
this.onFSCommand(a, b);
|
|
};
|
|
l.prototype.requestRendering = function() {
|
|
this._pumpDisplayListUpdates();
|
|
};
|
|
l.prototype._pumpUpdates = function() {
|
|
if (b.dontSkipFramesOption.value || !(this._shouldThrottleDownRendering() || performance.now() - this._lastPumpTime < 1E3 / b.pumpRateOption.value)) {
|
|
k.enterTimeline("pump"), b.pumpEnabledOption.value && (this._pumpDisplayListUpdates(), this._lastPumpTime = performance.now()), k.leaveTimeline("pump");
|
|
}
|
|
};
|
|
l.prototype._leaveSyncLoop = function() {
|
|
g(-1 < this._frameTimeout);
|
|
clearInterval(this._frameTimeout);
|
|
};
|
|
l.prototype._getFrameInterval = function() {
|
|
var a = b.frameRateOption.value;
|
|
0 > a && (a = this._stage.frameRate);
|
|
return Math.floor(1E3 / a);
|
|
};
|
|
l.prototype._enterEventLoop = function() {
|
|
this._eventLoopIsRunning = !0;
|
|
this._eventLoopTick = this._eventLoopTick.bind(this);
|
|
this._eventLoopTick();
|
|
};
|
|
l.prototype._eventLoopTick = function() {
|
|
var c = !b.playAllSymbolsOption.value, d = b.dontSkipFramesOption.value;
|
|
this._frameTimeout = setTimeout(this._eventLoopTick, this._getFrameInterval());
|
|
if (d || !(!b.frameEnabledOption.value && c || this._shouldThrottleDownFrameExecution())) {
|
|
this._stage.scaleX = this._stage.scaleY = b.stageScaleOption.value;
|
|
a._stage = this._stage;
|
|
for (d = 0;d < b.frameRateMultiplierOption.value;d++) {
|
|
k.enterTimeline("eventLoop");
|
|
var e = performance.now();
|
|
a.performFrameNavigation(!0, c);
|
|
k.counter.count("performFrameNavigation", 1, performance.now() - e);
|
|
this._framesPlayed++;
|
|
p.progress();
|
|
0 < b.tracePlayerOption.value && 0 === this._framesPlayed % b.tracePlayerOption.value && this._tracePlayer();
|
|
k.leaveTimeline("eventLoop");
|
|
}
|
|
this._rootInitialized ? this._stage.render() : this._rootInitialized = !0;
|
|
this._pumpUpdates();
|
|
this.onFrameProcessed();
|
|
}
|
|
};
|
|
l.prototype._tracePlayer = function() {
|
|
var a = this._writer;
|
|
a.enter("Frame: " + this._framesPlayed);
|
|
b.AVM2.counter.traceSorted(a);
|
|
b.AVM2.counter.clear();
|
|
b.Player.counter.traceSorted(a);
|
|
b.Player.counter.clear();
|
|
a.writeLn("advancableInstances: " + f.display.DisplayObject._advancableInstances.length);
|
|
a.outdent();
|
|
};
|
|
l.prototype._leaveEventLoop = function() {
|
|
g(this._eventLoopIsRunning);
|
|
clearTimeout(this._frameTimeout);
|
|
this._eventLoopIsRunning = !1;
|
|
};
|
|
l.prototype._playAllSymbols = function() {
|
|
var a = this._stage, c = this._loader, d = this._loaderInfo, e = this;
|
|
d.addEventListener(f.events.ProgressEvent.PROGRESS, function G() {
|
|
c.content && (d.removeEventListener(f.events.ProgressEvent.PROGRESS, G), e._enterLoops());
|
|
});
|
|
d.addEventListener(f.events.Event.COMPLETE, function() {
|
|
function c() {
|
|
var l;
|
|
0 < b.playSymbolOption.value ? (l = d.getSymbolById(b.playSymbolOption.value), l instanceof b.Timeline.DisplaySymbol || (l = null)) : (l = g[k++], k === g.length && (k = 0), 0 <= b.playSymbolCountOption.value && k > b.playSymbolCountOption.value && (k = 0));
|
|
var m = 1;
|
|
if (l && 0 < l.id) {
|
|
var n = l;
|
|
f.display.DisplayObject.reset();
|
|
f.display.MovieClip.reset();
|
|
var p = n.symbolClass.initializeFrom(n);
|
|
n.symbolClass.instanceConstructorNoInitialize.call(p);
|
|
for (n instanceof b.Timeline.BitmapSymbol && (p = new f.display.Bitmap(p));0 < a.numChildren;) {
|
|
a.removeChildAt(0);
|
|
}
|
|
a.addChild(p);
|
|
l instanceof b.Timeline.SpriteSymbol && (m = l.numFrames);
|
|
}
|
|
0 < b.playSymbolFrameDurationOption.value && (m = b.playSymbolFrameDurationOption.value);
|
|
setTimeout(c, e._getFrameInterval() * m);
|
|
}
|
|
a.setStageWidth(1024);
|
|
a.setStageHeight(1024);
|
|
var g = [];
|
|
d._dictionary.forEach(function(a, c) {
|
|
a instanceof b.Timeline.DisplaySymbol && g.push(a);
|
|
});
|
|
var k = 0;
|
|
setTimeout(c, e._getFrameInterval());
|
|
});
|
|
};
|
|
l.prototype.processExternalCallback = function(a) {
|
|
if (this.externalCallback) {
|
|
try {
|
|
a.result = this.externalCallback(a.functionName, a.args);
|
|
} catch (b) {
|
|
a.error = b.message;
|
|
}
|
|
}
|
|
};
|
|
l.prototype.onExternalCommand = function(a) {
|
|
throw Error("This method is abstract");
|
|
};
|
|
l.prototype.onFSCommand = function(a, b) {
|
|
throw Error("This method is abstract");
|
|
};
|
|
l.prototype.onFrameProcessed = function() {
|
|
throw Error("This method is abstract");
|
|
};
|
|
l.prototype.createExternalInterfaceService = function() {
|
|
var a, b = this;
|
|
return{get enabled() {
|
|
if (void 0 === a) {
|
|
var c = {action:"isEnabled"};
|
|
b.onExternalCommand(c);
|
|
a = c.result;
|
|
}
|
|
return a;
|
|
}, initJS:function(a) {
|
|
b.externalCallback = a;
|
|
b.onExternalCommand({action:"initJS"});
|
|
}, registerCallback:function(a) {
|
|
b.onExternalCommand({action:"register", functionName:a, remove:!1});
|
|
}, unregisterCallback:function(a) {
|
|
b.onExternalCommand({action:"register", functionName:a, remove:!0});
|
|
}, eval:function(a) {
|
|
a = {action:"eval", expression:a};
|
|
b.onExternalCommand(a);
|
|
return a.result;
|
|
}, call:function(a) {
|
|
a = {action:"call", request:a};
|
|
b.onExternalCommand(a);
|
|
return a.result;
|
|
}, getId:function() {
|
|
var a = {action:"getId"};
|
|
b.onExternalCommand(a);
|
|
return a.result;
|
|
}};
|
|
};
|
|
return l;
|
|
}();
|
|
k.Player = l;
|
|
})(b.Player || (b.Player = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
var k = b.BinaryFileReader, g = b.AVM2.ABC.AbcFile, f = b.AVM2.Runtime.AVM2, t = b.Debug.assert;
|
|
b.createAVM2 = function(s, m, d, a, c, n) {
|
|
function p(a) {
|
|
(new k(d)).readAll(function(b) {
|
|
e.systemDomain.executeAbc(new g(new Uint8Array(b), d));
|
|
a();
|
|
});
|
|
}
|
|
var e;
|
|
t(s);
|
|
(new k(s)).readAll(function(q) {
|
|
f.initialize(a, c, d ? p : null);
|
|
e = f.instance;
|
|
b.AVM2.AS.linkNatives(e);
|
|
console.time("Execute builtin.abc");
|
|
e.builtinsLoaded = !1;
|
|
e.systemDomain.executeAbc(new g(new Uint8Array(q), "builtin.abc"));
|
|
e.builtinsLoaded = !0;
|
|
console.timeEnd("Execute builtin.abc");
|
|
"string" === typeof m ? (new k(m)).readAll(function(a) {
|
|
e.systemDomain.executeAbc(new g(new Uint8Array(a), m));
|
|
n(e);
|
|
}) : f.isPlayerglobalLoaded() || f.loadPlayerglobal(m.abcs, m.catalog).then(function() {
|
|
n(e);
|
|
});
|
|
});
|
|
};
|
|
})(Shumway || (Shumway = {}));
|
|
__extends = this.__extends || function(b, k) {
|
|
function g() {
|
|
this.constructor = b;
|
|
}
|
|
for (var f in k) {
|
|
k.hasOwnProperty(f) && (b[f] = k[f]);
|
|
}
|
|
g.prototype = k.prototype;
|
|
b.prototype = new g;
|
|
};
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.ArrayUtilities.DataBuffer, k = function(g) {
|
|
function k(b, a) {
|
|
g.call(this);
|
|
this._window = b;
|
|
this._parent = a || b.parent;
|
|
this._window.addEventListener("message", function(a) {
|
|
this.onWindowMessage(a.data, !0);
|
|
}.bind(this));
|
|
this._window.addEventListener("syncmessage", function(a) {
|
|
this.onWindowMessage(a.detail, !1);
|
|
}.bind(this));
|
|
}
|
|
__extends(k, g);
|
|
k.prototype.onSendUpdates = function(b, a, c) {
|
|
"undefined" === typeof c && (c = !0);
|
|
b = b.getBytes();
|
|
a = {type:"player", updates:b, assets:a, result:void 0};
|
|
b = [b.buffer];
|
|
if (!c) {
|
|
return c = this._parent.document.createEvent("CustomEvent"), c.initCustomEvent("syncmessage", !1, !1, a), this._parent.dispatchEvent(c), f.FromPlainObject(a.result);
|
|
}
|
|
this._parent.postMessage(a, "*", b);
|
|
return null;
|
|
};
|
|
k.prototype.onExternalCommand = function(b) {
|
|
var a = this._parent.document.createEvent("CustomEvent");
|
|
a.initCustomEvent("syncmessage", !1, !1, {type:"external", request:b});
|
|
this._parent.dispatchEvent(a);
|
|
};
|
|
k.prototype.onFSCommand = function(b, a) {
|
|
this._parent.postMessage({type:"fscommand", command:b, args:a}, "*");
|
|
};
|
|
k.prototype.onFrameProcessed = function() {
|
|
this._parent.postMessage({type:"frame"}, "*");
|
|
};
|
|
k.prototype.onWindowMessage = function(d, a) {
|
|
if ("object" === typeof d && null !== d) {
|
|
switch(d.type) {
|
|
case "gfx":
|
|
var c = b.ArrayUtilities.DataBuffer.FromArrayBuffer(d.updates.buffer);
|
|
this.processUpdates(c, d.assets);
|
|
break;
|
|
case "externalCallback":
|
|
this.processExternalCallback(d.request);
|
|
break;
|
|
case "options":
|
|
b.Settings.setSettings(d.settings);
|
|
break;
|
|
case "timeline":
|
|
switch(d.request) {
|
|
case "AVM2":
|
|
if ("clear" === d.cmd) {
|
|
b.AVM2.timelineBuffer.reset();
|
|
break;
|
|
}
|
|
this._parent.postMessage({type:"timelineResponse", request:d.request, timeline:b.AVM2.timelineBuffer}, "*");
|
|
break;
|
|
case "Player":
|
|
if ("clear" === d.cmd) {
|
|
b.Player.timelineBuffer.reset();
|
|
break;
|
|
}
|
|
this._parent.postMessage({type:"timelineResponse", request:d.request, timeline:b.Player.timelineBuffer}, "*");
|
|
break;
|
|
case "SWF":
|
|
if ("clear" === d.cmd) {
|
|
b.SWF.timelineBuffer.reset();
|
|
break;
|
|
}
|
|
this._parent.postMessage({type:"timelineResponse", request:d.request, timeline:b.SWF.timelineBuffer}, "*");
|
|
}
|
|
;
|
|
}
|
|
}
|
|
};
|
|
return k;
|
|
}(b.Player.Player);
|
|
g.WindowPlayer = k;
|
|
})(k.Window || (k.Window = {}));
|
|
})(b.Player || (b.Player = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(k) {
|
|
(function(g) {
|
|
var f = b.ArrayUtilities.DataBuffer, k = function(g) {
|
|
function k() {
|
|
g.call(this);
|
|
this._worker = b.Player.Test.FakeSyncWorker.instance;
|
|
this._worker.addEventListener("message", this._onWorkerMessage.bind(this));
|
|
this._worker.addEventListener("syncmessage", this._onSyncWorkerMessage.bind(this));
|
|
}
|
|
__extends(k, g);
|
|
k.prototype.onSendUpdates = function(b, a, c) {
|
|
"undefined" === typeof c && (c = !0);
|
|
b = b.getBytes();
|
|
a = {type:"player", updates:b, assets:a};
|
|
b = [b.buffer];
|
|
if (!c) {
|
|
return c = this._worker.postSyncMessage(a, b), f.FromPlainObject(c);
|
|
}
|
|
this._worker.postMessage(a, b);
|
|
return null;
|
|
};
|
|
k.prototype.onExternalCommand = function(b) {
|
|
this._worker.postSyncMessage({type:"external", command:b});
|
|
};
|
|
k.prototype.onFSCommand = function(b, a) {
|
|
this._worker.postMessage({type:"fscommand", command:b, args:a});
|
|
};
|
|
k.prototype.onFrameProcessed = function() {
|
|
this._worker.postMessage({type:"frame"});
|
|
};
|
|
k.prototype._onWorkerMessage = function(b) {
|
|
var a = b.data;
|
|
if ("object" === typeof a && null !== a) {
|
|
switch(a.type) {
|
|
case "gfx":
|
|
a = f.FromArrayBuffer(b.data.updates.buffer);
|
|
this.processUpdates(a, b.data.assets);
|
|
break;
|
|
case "externalCallback":
|
|
this.processExternalCallback(a.request), b.handled = !0;
|
|
}
|
|
}
|
|
};
|
|
k.prototype._onSyncWorkerMessage = function(b) {
|
|
return this._onWorkerMessage(b);
|
|
};
|
|
return k;
|
|
}(b.Player.Player);
|
|
g.TestPlayer = k;
|
|
})(k.Test || (k.Test = {}));
|
|
})(b.Player || (b.Player = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
(function(b) {
|
|
(function(b) {
|
|
(function(b) {
|
|
var f = function() {
|
|
function b() {
|
|
this._worker = new Worker(b.WORKER_PATH);
|
|
this._onsyncmessageListeners = [];
|
|
}
|
|
Object.defineProperty(b, "instance", {get:function() {
|
|
b._singelton || (b._singelton = new b);
|
|
return b._singelton;
|
|
}, enumerable:!0, configurable:!0});
|
|
b.prototype.addEventListener = function(b, f, d) {
|
|
"syncmessage" !== b ? this._worker.addEventListener(b, f, d) : this._onsyncmessageListeners.push(f);
|
|
};
|
|
b.prototype.removeEventListener = function(b, f, d) {
|
|
"syncmessage" === b ? (b = this._onsyncmessageListeners.indexOf(f), 0 <= b && this._onsyncmessageListeners.splice(b, 1)) : this._worker.removeEventListener(b, f, d);
|
|
};
|
|
b.prototype.postMessage = function(b, f) {
|
|
this._worker.postMessage(b, f);
|
|
};
|
|
b.prototype.postSyncMessage = function(b, f) {
|
|
var d;
|
|
this._onsyncmessageListeners.some(function(a) {
|
|
var c = {data:b, result:void 0, handled:!1};
|
|
"function" === typeof a ? a(c) : a.handleEvent(c);
|
|
if (!c.handled) {
|
|
return!1;
|
|
}
|
|
d = c.result;
|
|
return!0;
|
|
});
|
|
return d;
|
|
};
|
|
b.WORKER_PATH = "../../src/player/fakechannel.js";
|
|
return b;
|
|
}();
|
|
b.FakeSyncWorker = f;
|
|
})(b.Test || (b.Test = {}));
|
|
})(b.Player || (b.Player = {}));
|
|
})(Shumway || (Shumway = {}));
|
|
console.timeEnd("Load Player Dependencies");
|
|
|