From c729777354d237d2a8ccbb5e43a48ac47ee8b6b7 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Thu, 16 Feb 2017 13:41:59 -0800 Subject: [PATCH] Minor revision to _find algorithm --- Reflect.js | 38 +++++++++++++++++++------------------- Reflect.js.map | 2 +- Reflect.ts | 46 +++++++++++++++++++++++----------------------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/Reflect.js b/Reflect.js index 49daa00..f867659 100644 --- a/Reflect.js +++ b/Reflect.js @@ -16,21 +16,21 @@ var Reflect; (function (Reflect) { "use strict"; var hasOwn = Object.prototype.hasOwnProperty; - // feature test for Object.create support - var supportsCreate = typeof Object.create === "function"; - // feature test for __proto__ support - var supportsProto = { __proto__: [] } instanceof Array; // feature test for Symbol support var supportsSymbol = typeof Symbol === "function"; var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive"; var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator"; - // create an object in dictionary mode (a.k.a. "slow" mode in v8) - var createDictionary = supportsCreate ? function () { return MakeDictionary(Object.create(null)); } : - supportsProto ? function () { return MakeDictionary({ __proto__: null }); } : - function () { return MakeDictionary({}); }; var HashMap; (function (HashMap) { + var supportsCreate = typeof Object.create === "function"; // feature test for Object.create support + var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support var downLevel = !supportsCreate && !supportsProto; + // create an object in dictionary mode (a.k.a. "slow" mode in v8) + HashMap.create = supportsCreate + ? function () { return MakeDictionary(Object.create(null)); } + : supportsProto + ? function () { return MakeDictionary({ __proto__: null }); } + : function () { return MakeDictionary({}); }; HashMap.has = downLevel ? function (map, key) { return hasOwn.call(map, key); } : function (map, key) { return key in map; }; @@ -40,9 +40,9 @@ var Reflect; })(HashMap || (HashMap = {})); // Load global or shim versions of Map, Set, and WeakMap var functionPrototype = Object.getPrototypeOf(Function); - var _Map = typeof Map === "unction" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill(); - var _Set = typeof Set === "unction" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill(); - var _WeakMap = typeof WeakMap === "unction" ? WeakMap : CreateWeakMapPolyfill(); + var _Map = typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill(); + var _Set = typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill(); + var _WeakMap = typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill(); // [[Metadata]] internal slot // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots var Metadata = new _WeakMap(); @@ -972,15 +972,15 @@ var Reflect; Map.prototype["@@iterator"] = function () { return this.entries(); }; Map.prototype[iteratorSymbol] = function () { return this.entries(); }; Map.prototype._find = function (key, insert) { - if (this._cacheKey === key && (!insert || this._cacheIndex >= 0)) - return this._cacheIndex; - var index = this._keys.indexOf(key); - if (index < 0 && insert) { - index = this._keys.length; + if (this._cacheKey !== key) { + this._cacheIndex = this._keys.indexOf(this._cacheKey = key); + } + if (this._cacheIndex < 0 && insert) { + this._cacheIndex = this._keys.length; this._keys.push(key); this._values.push(undefined); } - return this._cacheKey = key, this._cacheIndex = index; + return this._cacheIndex; }; return Map; }()); @@ -1020,7 +1020,7 @@ var Reflect; // naive WeakMap shim function CreateWeakMapPolyfill() { var UUID_SIZE = 16; - var keys = createDictionary(); + var keys = HashMap.create(); var rootKey = CreateUniqueKey(); return (function () { function WeakMap() { @@ -1061,7 +1061,7 @@ var Reflect; if (!hasOwn.call(target, rootKey)) { if (!create) return undefined; - Object.defineProperty(target, rootKey, { value: createDictionary() }); + Object.defineProperty(target, rootKey, { value: HashMap.create() }); } return target[rootKey]; } diff --git a/Reflect.js.map b/Reflect.js.map index 9811355..c12b24e 100644 --- a/Reflect.js.map +++ b/Reflect.js.map @@ -1 +1 @@ -{"version":3,"file":"Reflect.js","sourceRoot":"","sources":["Reflect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;gFAagF;AAChF,IAAU,OAAO,CAkqDhB;AAlqDD,WAAU,OAAO;IACb,YAAY,CAAC;IAuFb,IAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IAE/C,yCAAyC;IACzC,IAAM,cAAc,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;IAE3D,qCAAqC;IACrC,IAAM,aAAa,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,CAAC;IAEzD,kCAAkC;IAClC,IAAM,cAAc,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC;IACpD,IAAM,iBAAiB,GAAG,cAAc,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,WAAW,GAAG,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC;IAC7H,IAAM,cAAc,GAAG,cAAc,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,GAAG,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC;IAEjH,iEAAiE;IACjE,IAAM,gBAAgB,GAClB,cAAc,GAAG,cAAS,OAAA,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAe,CAAC,EAAjD,CAAiD;QACvE,aAAa,GAAG,cAAS,OAAA,cAAc,CAAC,EAAE,SAAS,EAAE,IAAW,EAAgB,CAAC,EAAxD,CAAwD;YAC7E,cAAS,OAAA,cAAc,CAAC,EAAgB,CAAC,EAAhC,CAAgC,CAAC;IAEtD,IAAU,OAAO,CAQhB;IARD,WAAU,OAAO;QACb,IAAM,SAAS,GAAG,CAAC,cAAc,IAAI,CAAC,aAAa,CAAC;QACvC,WAAG,GAAG,SAAS;cACtB,UAAI,GAAe,EAAE,GAA6B,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAArB,CAAqB;cAC5E,UAAI,GAAe,EAAE,GAA6B,IAAK,OAAA,GAAG,IAAI,GAAG,EAAV,CAAU,CAAC;QAC3D,WAAG,GAAG,SAAS;cACtB,UAAI,GAAe,EAAE,GAA6B,IAAoB,OAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,EAA5C,CAA4C;cAClH,UAAI,GAAe,EAAE,GAA6B,IAAoB,OAAA,GAAG,CAAC,GAAG,CAAC,EAAR,CAAQ,CAAC;IACzF,CAAC,EARS,OAAO,KAAP,OAAO,QAQhB;IAED,wDAAwD;IACxD,IAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAM,IAAI,GAAe,OAAO,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,KAAK,UAAU,GAAG,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAC7H,IAAM,IAAI,GAAe,OAAO,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,KAAK,UAAU,GAAG,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAC7H,IAAM,QAAQ,GAAmB,OAAO,OAAO,KAAK,SAAS,GAAG,OAAO,GAAG,qBAAqB,EAAE,CAAC;IAElG,6BAA6B;IAC7B,mGAAmG;IACnG,IAAM,QAAQ,GAAG,IAAI,QAAQ,EAAwD,CAAC;IA4FtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsCI;IACJ,kBAAyB,UAAgD,EAAE,MAAW,EAAE,WAA6B,EAAE,UAAsC;QACzJ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAChD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC7C,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YACpG,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAAC,UAAU,GAAG,SAAS,CAAC;YAC/C,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,CAAC,gBAAgB,CAAoB,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,CAAC;YACF,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAChD,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAClD,MAAM,CAAC,mBAAmB,CAAmB,UAAU,EAAY,MAAM,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAde,gBAAQ,WAcvB,CAAA;IAED,qDAAqD;IACrD,gEAAgE;IAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAuCI;IACJ,kBAAyB,WAAgB,EAAE,aAAkB;QAGzD,mBAAmB,MAAW,EAAE,WAA6B;YACzD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC7C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YACpF,yBAAyB,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;IATe,gBAAQ,WASvB,CAAA;IA+DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsCI;IACJ,wBAA+B,WAAgB,EAAE,aAAkB,EAAE,MAAW,EAAE,WAA6B;QAC3G,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,CAAC,yBAAyB,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACtF,CAAC;IAJe,sBAAc,iBAI7B,CAAA;IAqDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCI;IACJ,qBAA4B,WAAgB,EAAE,MAAW,EAAE,WAA6B;QACpF,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAJe,mBAAW,cAI1B,CAAA;IAqDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCI;IACJ,wBAA+B,WAAgB,EAAE,MAAW,EAAE,WAA6B;QACvF,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;IAJe,sBAAc,iBAI7B,CAAA;IAqDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCI;IACJ,qBAA4B,WAAgB,EAAE,MAAW,EAAE,WAA6B;QACpF,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAJe,mBAAW,cAI1B,CAAA;IAqDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCI;IACJ,wBAA+B,WAAgB,EAAE,MAAW,EAAE,WAA6B;QACvF,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,CAAC,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;IAJe,sBAAc,iBAI7B,CAAA;IAmDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgCI;IACJ,yBAAgC,MAAW,EAAE,WAA6B;QACtE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;IAJe,uBAAe,kBAI9B,CAAA;IAmDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgCI;IACJ,4BAAmC,MAAW,EAAE,WAA6B;QACzE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAJe,0BAAkB,qBAIjC,CAAA;IAqDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCI;IACJ,wBAA+B,WAAgB,EAAE,MAAW,EAAE,WAA6B;QACvF,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxE,IAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAClF,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAC3C,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QACnD,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC;QACtC,IAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACnC,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC;QACzC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAZe,sBAAc,iBAY7B,CAAA;IAED,6BAA6B,UAA4B,EAAE,MAAgB;QACvE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC9C,IAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAChD,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;oBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBACrD,MAAM,GAAa,SAAS,CAAC;YACjC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAClB,CAAC;IAED,0BAA0B,UAA6B,EAAE,MAAW,EAAE,WAA4B,EAAE,UAA0C;QAC1I,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC9C,IAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAC7D,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAChD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBAChD,UAAU,GAAuB,SAAS,CAAC;YAC/C,CAAC;QACL,CAAC;QACD,MAAM,CAAC,UAAU,CAAC;IACtB,CAAC;IAMD,gCAAgC,CAAM,EAAE,CAA8B,EAAE,MAAe;QACnF,IAAI,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrC,EAAE,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9B,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,SAAS,CAAC;YAC9B,cAAc,GAAG,IAAI,IAAI,EAA8C,CAAC;YACxE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3B,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,SAAS,CAAC;YAC9B,WAAW,GAAG,IAAI,IAAI,EAAY,CAAC;YACnC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,CAAC,WAAW,CAAC;IACvB,CAAC;IAED,iDAAiD;IACjD,mEAAmE;IACnE,6BAA6B,WAAgB,EAAE,CAAM,EAAE,CAA8B;QACjF,IAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,EAAE,CAAC,CAAC,MAAM,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC;QACxB,IAAM,MAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC;IAED,oDAAoD;IACpD,sEAAsE;IACtE,gCAAgC,WAAgB,EAAE,CAAM,EAAE,CAA8B;QACpF,IAAM,WAAW,GAAG,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACnE,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,iDAAiD;IACjD,mEAAmE;IACnE,6BAA6B,WAAgB,EAAE,CAAM,EAAE,CAA8B;QACjF,IAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,EAAE,CAAC,CAAC,MAAM,CAAC;YAAC,MAAM,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAM,MAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;IAED,oDAAoD;IACpD,sEAAsE;IACtE,gCAAgC,WAAgB,EAAE,CAAM,EAAE,CAA8B;QACpF,IAAM,WAAW,GAAG,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACnE,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,MAAM,CAAC,SAAS,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,sEAAsE;IACtE,yEAAyE;IACzE,mCAAmC,WAAgB,EAAE,aAAkB,EAAE,CAAM,EAAE,CAA8B;QAC3G,IAAM,WAAW,GAAG,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAClE,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAChD,CAAC;IAED,qCAAqC;IACrC,oEAAoE;IACpE,8BAA8B,CAAM,EAAE,CAA8B;QAChE,IAAM,OAAO,GAAG,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAM,MAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;YAAC,MAAM,CAAC,OAAO,CAAC;QACpC,IAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACnD,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;YAAC,MAAM,CAAC,OAAO,CAAC;QAC3C,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;YAAC,MAAM,CAAC,UAAU,CAAC;QAC3C,IAAM,GAAG,GAAG,IAAI,IAAI,EAAO,CAAC;QAC5B,IAAM,IAAI,GAAU,EAAE,CAAC;QACvB,GAAG,CAAC,CAAc,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO;YAApB,IAAM,GAAG,gBAAA;YACV,IAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACV,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;SACJ;QACD,GAAG,CAAC,CAAc,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU;YAAvB,IAAM,GAAG,mBAAA;YACV,IAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACV,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;SACJ;QACD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,wCAAwC;IACxC,uEAAuE;IACvE,iCAAiC,CAAM,EAAE,CAA8B;QACnE,IAAM,IAAI,GAAU,EAAE,CAAC;QACvB,IAAM,WAAW,GAAG,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACnE,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC;QAC1C,IAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,IAAI,EAAE,CAAC;YACV,IAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACR,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC;YAChB,CAAC;YACD,IAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC;gBACD,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;YACxB,CACA;YAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACP,IAAI,CAAC;oBACD,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;wBACO,CAAC;oBACL,MAAM,CAAC,CAAC;gBACZ,CAAC;YACL,CAAC;YACD,CAAC,EAAE,CAAC;QACR,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,uEAAuE;IACvE,cAAc,CAAM;QAChB,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;YAAC,MAAM,CAAC,YAAQ,CAAC;QAChC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACf,KAAK,WAAW,EAAE,MAAM,CAAC,iBAAa,CAAC;YACvC,KAAK,SAAS,EAAE,MAAM,CAAC,eAAW,CAAC;YACnC,KAAK,QAAQ,EAAE,MAAM,CAAC,cAAU,CAAC;YACjC,KAAK,QAAQ,EAAE,MAAM,CAAC,cAAU,CAAC;YACjC,KAAK,QAAQ,EAAE,MAAM,CAAC,cAAU,CAAC;YACjC,KAAK,QAAQ,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,GAAG,YAAQ,GAAG,cAAU,CAAC;YACzD,SAAS,MAAM,CAAC,cAAU,CAAC;QAC/B,CAAC;IACL,CAAC;IAcD,2BAA2B;IAC3B,+EAA+E;IAC/E,qBAAqB,CAAM;QACvB,MAAM,CAAC,CAAC,KAAK,SAAS,CAAC;IAC3B,CAAC;IAED,sBAAsB;IACtB,0EAA0E;IAC1E,gBAAgB,CAAM;QAClB,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;IACtB,CAAC;IAED,wBAAwB;IACxB,4EAA4E;IAC5E,kBAAkB,CAAM;QACpB,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;IACjC,CAAC;IAED,wBAAwB;IACxB,kDAAkD;IAClD,kBAAqB,CAA4D;QAC7E,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,KAAK,UAAU,CAAC;IACxE,CAAC;IAED,sBAAsB;IACtB,sDAAsD;IAEtD,6CAA6C;IAC7C,kDAAkD;IAClD,qBAAqB,KAAU,EAAE,aAAmB;QAChD,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,KAAK,iBAAa,EAAE,MAAM,CAAC,KAAK,CAAC;YACjC,KAAK,YAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;YAC5B,KAAK,eAAW,EAAE,MAAM,CAAC,KAAK,CAAC;YAC/B,KAAK,cAAU,EAAE,MAAM,CAAC,KAAK,CAAC;YAC9B,KAAK,cAAU,EAAE,MAAM,CAAC,KAAK,CAAC;YAC9B,KAAK,cAAU,EAAE,MAAM,CAAC,KAAK,CAAC;QAClC,CAAC;QACD,IAAM,IAAI,GAAoC,aAAa,KAAK,cAAU,GAAG,QAAQ,GAAG,aAAa,KAAK,cAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC5I,IAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACzD,EAAE,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;YAC7B,IAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,KAAK,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED,uCAAuC;IACvC,0DAA0D;IAC1D,6BAA6B,CAAM,EAAE,IAAyB;QAC1D,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;YACpB,IAAM,UAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;YAC5B,EAAE,CAAC,CAAC,UAAU,CAAC,UAAQ,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAM,MAAM,GAAG,UAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAAC,MAAM,CAAC,MAAM,CAAC;YACzC,CAAC;YACD,IAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;YAC1B,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/B,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAAC,MAAM,CAAC,MAAM,CAAC;YACzC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC;YACF,IAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;YAC1B,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/B,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAAC,MAAM,CAAC,MAAM,CAAC;YACzC,CAAC;YACD,IAAM,UAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;YAC5B,EAAE,CAAC,CAAC,UAAU,CAAC,UAAQ,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAM,MAAM,GAAG,UAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAAC,MAAM,CAAC,MAAM,CAAC;YACzC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,4BAA4B;IAC5B,qDAAqD;IACrD,mBAAmB,QAAa;QAC5B,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,4BAA4B;IAC5B,+CAA+C;IAC/C,kBAAkB,QAAa;QAC3B,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED,iCAAiC;IACjC,oDAAoD;IACpD,uBAAuB,QAAa;QAChC,IAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,cAAU,CAAC,CAAC;QAC9C,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM,CAAC,GAAG,CAAC;QAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,wCAAwC;IACxC,wEAAwE;IAExE,0BAA0B;IAC1B,8CAA8C;IAC9C,iBAAiB,QAAa;QAC1B,MAAM,CAAC,KAAK,CAAC,OAAO;cACd,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;cACvB,QAAQ,YAAY,MAAM;kBACtB,QAAQ,YAAY,KAAK;kBACzB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,gBAAgB,CAAC;IAC5E,CAAC;IAED,6BAA6B;IAC7B,iDAAiD;IACjD,oBAAoB,QAAa;QAC7B,kFAAkF;QAClF,MAAM,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;IAC1C,CAAC;IAED,gCAAgC;IAChC,oDAAoD;IACpD,uBAAuB,QAAa;QAChC,uFAAuF;QACvF,MAAM,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;IAC1C,CAAC;IAED,gCAAgC;IAChC,oDAAoD;IACpD,uBAAuB,QAAa;QAChC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrB,KAAK,cAAU,EAAE,MAAM,CAAC,IAAI,CAAC;YAC7B,KAAK,cAAU,EAAE,MAAM,CAAC,IAAI,CAAC;YAC7B,SAAS,MAAM,CAAC,KAAK,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,4DAA4D;IAE5D,wBAAwB;IACxB,gDAAgD;IAChD,mBAAmB,CAAM,EAAE,CAAM;QAC7B,IAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC;YAAC,MAAM,CAAC,SAAS,CAAC;QAC1D,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,qCAAqC;IACrC,qEAAqE;IAErE,qBAAwB,GAAgB;QACpC,IAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC9C,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,YAAY;QAC5D,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC;IACpB,CAAC;IAED,kCAAkC;IAClC,yDAAyD;IACzD,uBAA0B,UAA6B;QACnD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,+BAA+B;IAC/B,mDAAmD;IACnD,sBAAyB,QAAqB;QAC1C,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;IACxC,CAAC;IAED,4CAA4C;IAC5C,oDAAoD;IACpD,uBAA0B,QAAqB;QAC3C,IAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7B,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,0DAA0D;IAC1D,0FAA0F;IAE1F,oCAAoC;IACpC,6DAA6D;IAC7D,gCAAgC,CAAM;QAClC,IAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,iBAAiB,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAErE,iEAAiE;QACjE,0EAA0E;QAC1E,qFAAqF;QACrF,gFAAgF;QAChF,kCAAkC;QAElC,wFAAwF;QACxF,gFAAgF;QAChF,EAAE,CAAC,CAAC,KAAK,KAAK,iBAAiB,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAE9C,yGAAyG;QACzG,IAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAC9B,IAAM,cAAc,GAAG,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrE,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,IAAI,cAAc,KAAK,MAAM,CAAC,SAAS,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAEhF,gFAAgF;QAChF,IAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;QAC/C,EAAE,CAAC,CAAC,OAAO,WAAW,KAAK,UAAU,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAEpD,iFAAiF;QACjF,EAAE,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC;QAEpC,+CAA+C;QAC/C,MAAM,CAAC,WAAW,CAAC;IACvB,CAAC;IAED,iBAAiB;IACjB;QACI,IAAM,aAAa,GAAG,EAAE,CAAC;QACzB,IAAM,aAAa,GAAU,EAAE,CAAC;QAEhC;YAKI,qBAAY,IAAS,EAAE,MAAW,EAAE,QAAiC;gBAF7D,WAAM,GAAG,CAAC,CAAC;gBAGf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC9B,CAAC;YACD,mCAAY,GAAZ,cAAiB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/B,sBAAC,cAAc,CAAC,GAAhB,cAAqB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACnC,0BAAI,GAAJ;gBACI,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC1B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC1C,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;wBACjC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACjB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;wBAC3B,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;oBACjC,CAAC;oBACD,IAAI,CAAC,CAAC;wBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBAClB,CAAC;oBACD,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC1C,CAAC;gBACD,MAAM,CAAC,EAAE,KAAK,EAAS,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnD,CAAC;YACD,2BAAK,GAAL,UAAM,KAAU;gBACZ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;oBAC3B,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;gBACjC,CAAC;gBACD,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,4BAAM,GAAN,UAAO,KAAS;gBACZ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;oBAC3B,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;gBACjC,CAAC;gBACD,MAAM,CAAC,EAAE,KAAK,EAAS,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC/C,CAAC;YACL,kBAAC;QAAD,CAAC,AA5CD,IA4CC;QAED,MAAM;YAAC;gBACK,UAAK,GAAQ,EAAE,CAAC;gBAChB,YAAO,GAAsB,EAAE,CAAC;gBAChC,cAAS,GAAG,aAAa,CAAC;gBAC1B,gBAAW,GAAG,CAAC,CAAC,CAAC;YAmD7B,CAAC;YAlDG,sBAAI,qBAAI;qBAAR,cAAa,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;;;eAAA;YACxC,iBAAG,GAAH,UAAI,GAAM,IAAa,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvE,iBAAG,GAAH,UAAI,GAAM;gBACN,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YACxD,CAAC;YACD,iBAAG,GAAH,UAAI,GAAM,EAAE,KAAQ;gBAChB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC;YAChB,CAAC;YACD,oBAAM,GAAN,UAAO,GAAM;gBACT,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBAChD,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;oBACb,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;wBACpC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAClC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1C,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBACpB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACtB,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;wBACzB,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;wBAC/B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;oBAC1B,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;gBAChB,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC;YACjB,CAAC;YACD,mBAAK,GAAL;gBACI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;gBAC/B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC1B,CAAC;YACD,kBAAI,GAAJ,cAAS,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACpE,oBAAM,GAAN,cAAW,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxE,qBAAO,GAAP,cAAY,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzE,2BAAY,GAAZ,cAAiB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzC,cAAC,cAAc,CAAC,GAAhB,cAAqB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACrC,mBAAK,GAAb,UAAc,GAAM,EAAE,MAAgB;gBAClC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;oBAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC1F,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;oBACtB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAC1D,CAAC;YACL,UAAC;QAAD,CAAC,AAvDM,IAuDL;QAEF,gBAAsB,GAAM,EAAE,CAAI;YAC9B,MAAM,CAAC,GAAG,CAAC;QACf,CAAC;QAED,kBAAwB,CAAI,EAAE,KAAQ;YAClC,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QAED,kBAAwB,GAAM,EAAE,KAAQ;YACpC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAW,CAAC;QAClC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB;QACI,MAAM;YAAC;gBACK,SAAI,GAAG,IAAI,IAAI,EAAY,CAAC;YAWxC,CAAC;YAVG,sBAAI,qBAAI;qBAAR,cAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;;eAAA;YACrC,iBAAG,GAAH,UAAI,KAAQ,IAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvD,iBAAG,GAAH,UAAI,KAAQ,IAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACnE,oBAAM,GAAN,UAAO,KAAQ,IAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7D,mBAAK,GAAL,cAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,kBAAI,GAAJ,cAAS,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACnC,oBAAM,GAAN,cAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvC,qBAAO,GAAP,cAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzC,2BAAY,GAAZ,cAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtC,cAAC,cAAc,CAAC,GAAhB,cAAqB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,UAAC;QAAD,CAAC,AAZM,IAYL;IACN,CAAC;IAED,qBAAqB;IACrB;QACI,IAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAM,IAAI,GAAG,gBAAgB,EAAW,CAAC;QACzC,IAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,MAAM;YAAC;gBACK,SAAI,GAAG,eAAe,EAAE,CAAC;YAsBrC,CAAC;YArBG,qBAAG,GAAH,UAAI,MAAS;gBACT,IAAM,KAAK,GAAG,uBAAuB,CAAI,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBACnE,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACvE,CAAC;YACD,qBAAG,GAAH,UAAI,MAAS;gBACT,IAAM,KAAK,GAAG,uBAAuB,CAAI,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBACnE,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YAC3E,CAAC;YACD,qBAAG,GAAH,UAAI,MAAS,EAAE,KAAQ;gBACnB,IAAM,KAAK,GAAG,uBAAuB,CAAI,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC;YAChB,CAAC;YACD,wBAAM,GAAN,UAAO,MAAS;gBACZ,IAAM,KAAK,GAAG,uBAAuB,CAAI,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;gBACnE,MAAM,CAAC,KAAK,KAAK,SAAS,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACjE,CAAC;YACD,uBAAK,GAAL;gBACI,mEAAmE;gBACnE,IAAI,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;YAClC,CAAC;YACL,cAAC;QAAD,CAAC,AAvBM,IAuBL;QAEF;YACI,IAAI,GAAW,CAAC;YAChB;gBAAG,GAAG,GAAG,aAAa,GAAG,UAAU,EAAE,CAAC;mBAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC;QACf,CAAC;QAID,iCAAoC,MAAS,EAAE,MAAe;YAC1D,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;oBAAC,MAAM,CAAC,SAAS,CAAC;gBAC9B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAO,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,CAAO,MAAO,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,yBAAyB,MAAkB,EAAE,IAAY;YACrD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC;QAClB,CAAC;QAED,wBAAwB,IAAY;YAChC,EAAE,CAAC,CAAC,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC;gBACnC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC;oBAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAe,CAAC;gBACrG,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC;oBAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAe,CAAC;gBACzG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;QAED;YACI,IAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YACvC,kCAAkC;YAClC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YAChC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC;gBAChD,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1B,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC;oBAAC,MAAM,IAAI,GAAG,CAAC;gBAChE,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;oBAAC,MAAM,IAAI,GAAG,CAAC;gBAC7B,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,CAAC;YACD,MAAM,CAAC,MAAM,CAAC;QAClB,CAAC;IACL,CAAC;IAED,kFAAkF;IAClF,wBAA2B,GAAM;QACvB,GAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QAC1B,OAAa,GAAI,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC;IACf,CAAC;IAED,uBAAuB;IACvB,CAAC,UAAU,QAAa;QACpB,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC/B,GAAG,CAAC,CAAC,IAAM,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;oBACtB,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAS,OAAQ,CAAC,CAAC,CAAC,CAAC;oBAC5C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC;YACF,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/B,CAAC;IACL,CAAC,CAAC,CACE,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM;QAClC,OAAO,IAAI,KAAK,WAAW,GAAG,IAAI;YAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC,EAlqDS,OAAO,KAAP,OAAO,QAkqDhB"} \ No newline at end of file +{"version":3,"file":"Reflect.js","sourceRoot":"","sources":["Reflect.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Reflect.ts b/Reflect.ts index 210c655..22bd931 100644 --- a/Reflect.ts +++ b/Reflect.ts @@ -102,28 +102,27 @@ namespace Reflect { const hasOwn = Object.prototype.hasOwnProperty; - // feature test for Object.create support - const supportsCreate = typeof Object.create === "function"; - - // feature test for __proto__ support - const supportsProto = { __proto__: [] } instanceof Array; - // feature test for Symbol support const supportsSymbol = typeof Symbol === "function"; const toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive"; const iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator"; - // create an object in dictionary mode (a.k.a. "slow" mode in v8) - const createDictionary = - supportsCreate ? () => MakeDictionary(Object.create(null) as HashMap) : - supportsProto ? () => MakeDictionary({ __proto__: null as any } as HashMap) : - () => MakeDictionary({} as HashMap); - namespace HashMap { + const supportsCreate = typeof Object.create === "function"; // feature test for Object.create support + const supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support const downLevel = !supportsCreate && !supportsProto; + + // create an object in dictionary mode (a.k.a. "slow" mode in v8) + export const create = supportsCreate + ? () => MakeDictionary(Object.create(null) as HashMap) + : supportsProto + ? () => MakeDictionary({ __proto__: null as any } as HashMap) + : () => MakeDictionary({} as HashMap); + export const has = downLevel ? (map: HashMap, key: string | number | symbol) => hasOwn.call(map, key) : (map: HashMap, key: string | number | symbol) => key in map; + export const get = downLevel ? (map: HashMap, key: string | number | symbol): V | undefined => hasOwn.call(map, key) ? map[key] : undefined : (map: HashMap, key: string | number | symbol): V | undefined => map[key]; @@ -1566,14 +1565,15 @@ namespace Reflect { "@@iterator"() { return this.entries(); } [iteratorSymbol]() { return this.entries(); } private _find(key: K, insert?: boolean): number { - if (this._cacheKey === key && (!insert || this._cacheIndex >= 0)) return this._cacheIndex; - let index = this._keys.indexOf(key); - if (index < 0 && insert) { - index = this._keys.length; + if (this._cacheKey !== key) { + this._cacheIndex = this._keys.indexOf(this._cacheKey = key); + } + if (this._cacheIndex < 0 && insert) { + this._cacheIndex = this._keys.length; this._keys.push(key); this._values.push(undefined); } - return this._cacheKey = key, this._cacheIndex = index; + return this._cacheIndex; } }; @@ -1610,25 +1610,25 @@ namespace Reflect { // naive WeakMap shim function CreateWeakMapPolyfill(): WeakMapConstructor { const UUID_SIZE = 16; - const keys = createDictionary(); + const keys = HashMap.create(); const rootKey = CreateUniqueKey(); return class WeakMap { private _key = CreateUniqueKey(); has(target: K): boolean { - const table = GetOrCreateWeakMapTable(target, /*Create*/ false); + const table = GetOrCreateWeakMapTable(target, /*create*/ false); return table !== undefined ? HashMap.has(table, this._key) : false; } get(target: K): V { - const table = GetOrCreateWeakMapTable(target, /*Create*/ false); + const table = GetOrCreateWeakMapTable(target, /*create*/ false); return table !== undefined ? HashMap.get(table, this._key) : undefined; } set(target: K, value: V): WeakMap { - const table = GetOrCreateWeakMapTable(target, /*Create*/ true); + const table = GetOrCreateWeakMapTable(target, /*create*/ true); table[this._key] = value; return this; } delete(target: K): boolean { - const table = GetOrCreateWeakMapTable(target, /*Create*/ false); + const table = GetOrCreateWeakMapTable(target, /*create*/ false); return table !== undefined ? delete table[this._key] : false; } clear(): void { @@ -1650,7 +1650,7 @@ namespace Reflect { function GetOrCreateWeakMapTable(target: K, create: boolean): HashMap | undefined { if (!hasOwn.call(target, rootKey)) { if (!create) return undefined; - Object.defineProperty(target, rootKey, { value: createDictionary() }); + Object.defineProperty(target, rootKey, { value: HashMap.create() }); } return (target)[rootKey]; }