diff --git a/dist/index.js b/dist/index.js index 0635a405..0e60c34e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -6773,7 +6773,7 @@ var StringLiteralReplacer = StringLiteralReplacer_1 = function (_AbstractReplace } var indexOfValue = this.stringArrayStorage.getLength(); var hexadecimalIndex = "" + Utils_1.Utils.hexadecimalPrefix + Utils_1.Utils.decToHex(indexOfValue); - this.stringArrayStorage.set(null, value); + this.stringArrayStorage.set(this.stringArrayStorage.getLength(), value); this.stringLiteralHexadecimalIndexCache.set(value, hexadecimalIndex); return hexadecimalIndex; } @@ -7599,6 +7599,8 @@ var RandomGeneratorUtils_1 = __webpack_require__(9); var ArrayStorage = function () { function ArrayStorage() { (0, _classCallCheck3.default)(this, ArrayStorage); + + this.storageLength = 0; } (0, _createClass3.default)(ArrayStorage, [{ @@ -7618,7 +7620,7 @@ var ArrayStorage = function () { }, { key: "getLength", value: function getLength() { - return this.storage.length; + return this.storageLength; } }, { key: "getStorage", @@ -7649,14 +7651,19 @@ var ArrayStorage = function () { }, { key: "set", value: function set(key, value) { - this.storage.push(value); + if (key === this.storageLength) { + this.storage.push(value); + } else { + this.storage.splice(key, 0, value); + } + this.storageLength++; } }]); return ArrayStorage; }(); -tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ArrayStorage.prototype, "storageId", void 0); tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], ArrayStorage.prototype, "storage", void 0); -ArrayStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], ArrayStorage); +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ArrayStorage.prototype, "storageId", void 0); +ArrayStorage = tslib_1.__decorate([inversify_1.injectable()], ArrayStorage); exports.ArrayStorage = ArrayStorage; /***/ }), diff --git a/package.json b/package.json index b81dac0b..07fe7b83 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "tslint": "4.3.1", "tslint-loader": "3.3.0", "typescript": "2.1.5", - "webpack": "2.2.0-rc.5", + "webpack": "2.2.0-rc.6", "webpack-node-externals": "1.5.4" }, "repository": { diff --git a/src/interfaces/storages/IStorage.d.ts b/src/interfaces/storages/IStorage.d.ts index 5540fb01..f76fab01 100644 --- a/src/interfaces/storages/IStorage.d.ts +++ b/src/interfaces/storages/IStorage.d.ts @@ -43,7 +43,7 @@ export interface IStorage extends IInitializable { * @param key * @param value */ - set (key: string | number | null, value: T): void; + set (key: string | number, value: T): void; /** * @returns string diff --git a/src/node-transformers/obfuscating-transformers/replacers/StringLiteralReplacer.ts b/src/node-transformers/obfuscating-transformers/replacers/StringLiteralReplacer.ts index 10f5523a..6a540e0b 100644 --- a/src/node-transformers/obfuscating-transformers/replacers/StringLiteralReplacer.ts +++ b/src/node-transformers/obfuscating-transformers/replacers/StringLiteralReplacer.ts @@ -105,7 +105,7 @@ export class StringLiteralReplacer extends AbstractReplacer { const indexOfValue: number = this.stringArrayStorage.getLength(); const hexadecimalIndex: string = `${Utils.hexadecimalPrefix}${Utils.decToHex(indexOfValue)}`; - this.stringArrayStorage.set(null, value); + this.stringArrayStorage.set(this.stringArrayStorage.getLength(), value); this.stringLiteralHexadecimalIndexCache.set(value, hexadecimalIndex); return hexadecimalIndex; diff --git a/src/storages/ArrayStorage.ts b/src/storages/ArrayStorage.ts index 22cae049..66209d5c 100644 --- a/src/storages/ArrayStorage.ts +++ b/src/storages/ArrayStorage.ts @@ -8,6 +8,12 @@ import { RandomGeneratorUtils } from '../utils/RandomGeneratorUtils'; @injectable() export abstract class ArrayStorage implements IStorage { + /** + * @type {T[]} + */ + @initializable() + protected storage: T[]; + /** * @type {string} */ @@ -15,10 +21,9 @@ export abstract class ArrayStorage implements IStorage { protected storageId: string; /** - * @type {T[]} + * @type {number} */ - @initializable() - protected storage: T[]; + private storageLength: number = 0; /** * @param key @@ -46,7 +51,7 @@ export abstract class ArrayStorage implements IStorage { * @returns {number} */ public getLength (): number { - return this.storage.length; + return this.storageLength; } /** @@ -87,7 +92,13 @@ export abstract class ArrayStorage implements IStorage { * @param key * @param value */ - public set (key: string | null, value: T): void { - this.storage.push(value); + public set (key: number, value: T): void { + if (key === this.storageLength) { + this.storage.push(value); + } else { + this.storage.splice(key, 0, value); + } + + this.storageLength++; } }