diff --git a/.babelrc b/.babelrc index e860d01f..24e08ee2 100644 --- a/.babelrc +++ b/.babelrc @@ -1,7 +1,6 @@ { "presets": ["es2015"], "plugins": [ - "transform-array-from", "transform-object-assign" ] } \ No newline at end of file diff --git a/index.ts b/index.ts index eee91d17..f5c4b2f4 100644 --- a/index.ts +++ b/index.ts @@ -2,4 +2,8 @@ import { JavaScriptObfuscator } from './src/JavaScriptObfuscator'; +if (!(global)._babelPolyfill) { + require('babel-polyfill'); +} + module.exports = JavaScriptObfuscator; diff --git a/package.json b/package.json index 38bb8667..ad06e2b7 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "devDependencies": { "babel-cli": "^6.9.0", "babel-loader": "^6.2.4", - "babel-plugin-transform-array-from": "^1.0.0", "babel-plugin-transform-object-assign": "^6.8.0", "babel-preset-es2015": "^6.9.0", "chai": "^3.5.0", diff --git a/scripts/test-compile b/scripts/test-compile index 97833ad7..d36bcdf6 100755 --- a/scripts/test-compile +++ b/scripts/test-compile @@ -1,4 +1,4 @@ #!/bin/bash $(npm bin)/tsc -p tsconfig-test.json -$(npm bin)/babel test-tmp --out-dir test-tmp --source-maps --presets es2015 --plugins transform-array-from,transform-object-assign \ No newline at end of file +$(npm bin)/babel test-tmp --out-dir test-tmp --source-maps --presets es2015 --plugins transform-object-assign \ No newline at end of file diff --git a/src/JavaScriptObfuscator.ts b/src/JavaScriptObfuscator.ts index 452262ff..8992de18 100644 --- a/src/JavaScriptObfuscator.ts +++ b/src/JavaScriptObfuscator.ts @@ -12,10 +12,6 @@ import { JavaScriptObfuscatorCLI } from "./cli/JavaScriptObfuscatorCLI"; import { Obfuscator } from "./Obfuscator"; import { Options } from "./Options"; -if (!(global)._babelPolyfill) { - require('babel-polyfill'); -} - export class JavaScriptObfuscator { /** * @type {GenerateOptions} diff --git a/test/JavaScriptObfuscator.spec.ts b/test/JavaScriptObfuscator.spec.ts index fdb5a288..f034953c 100644 --- a/test/JavaScriptObfuscator.spec.ts +++ b/test/JavaScriptObfuscator.spec.ts @@ -1,9 +1,13 @@ +import { BabelPolyfill } from 'polyfills/BabelPolyfill'; + import { JavaScriptObfuscator } from "../src/JavaScriptObfuscator"; import { NO_CUSTOM_NODES_PRESET } from "../src/preset-options/NoCustomNodesPreset"; const assert: Chai.AssertStatic = require('chai').assert; +BabelPolyfill.append(); + describe('JavaScriptObfuscator', () => { describe('obfuscate (sourceCode: string, customOptions?: IOptionsPreset): string', () => { it('should obfuscate simple code with variable inside global scope', () => { diff --git a/test/JavaScriptObfuscatorCLI.spec.ts b/test/JavaScriptObfuscatorCLI.spec.ts index 9b455c07..d74c09ee 100644 --- a/test/JavaScriptObfuscatorCLI.spec.ts +++ b/test/JavaScriptObfuscatorCLI.spec.ts @@ -2,12 +2,16 @@ import * as fs from 'fs'; import * as mkdirp from 'mkdirp'; import * as sinon from 'sinon'; +import { BabelPolyfill } from 'polyfills/BabelPolyfill'; + import { StdoutWriteMock } from "../test/mocks/StdoutWriteMock"; import { JavaScriptObfuscator } from "../src/JavaScriptObfuscator"; const assert: Chai.AssertStatic = require('chai').assert; +BabelPolyfill.append(); + describe('JavaScriptObfuscatorCLI', function (): void { let fixturesDirName: string = 'test/fixtures', fixtureFileName: string = 'sample.js', diff --git a/test/NodeUtils.spec.ts b/test/NodeUtils.spec.ts index f1f54ea7..83593c87 100644 --- a/test/NodeUtils.spec.ts +++ b/test/NodeUtils.spec.ts @@ -1,3 +1,5 @@ +import { BabelPolyfill } from 'polyfills/BabelPolyfill'; + import { IBlockStatementNode } from "../src/interfaces/nodes/IBlockStatementNode"; import { IFunctionDeclarationNode } from "../src/interfaces/nodes/IFunctionDeclarationNode"; import { IIdentifierNode } from "../src/interfaces/nodes/IIdentifierNode"; @@ -12,6 +14,8 @@ import { NodeUtils } from '../src/NodeUtils'; const assert: any = require('chai').assert; +BabelPolyfill.append(); + function getProgramNode (bodyNodes: INode[] = []): IProgramNode { return { type: NodeType.Program, diff --git a/test/OptionsNormalizer.spec.ts b/test/OptionsNormalizer.spec.ts index 92c0ecae..a17b03c6 100644 --- a/test/OptionsNormalizer.spec.ts +++ b/test/OptionsNormalizer.spec.ts @@ -1,3 +1,5 @@ +import { BabelPolyfill } from 'polyfills/BabelPolyfill'; + import { IOptionsPreset } from "../src/interfaces/IOptionsPreset"; import { OptionsNormalizer } from '../src/OptionsNormalizer'; @@ -6,6 +8,8 @@ import { DEFAULT_PRESET } from '../src/preset-options/DefaultPreset'; const assert: Chai.AssertStatic = require('chai').assert; +BabelPolyfill.append(); + describe('OptionsNormalizer', () => { describe('normalizeOptionsPreset (options: IOptionsPreset): IOptionsPreset', () => { let optionsPreset1: IOptionsPreset = Object.assign({}, DEFAULT_PRESET, { diff --git a/test/Utils.spec.ts b/test/Utils.spec.ts index 4b182c43..c0057458 100644 --- a/test/Utils.spec.ts +++ b/test/Utils.spec.ts @@ -1,9 +1,13 @@ +import { BabelPolyfill } from 'polyfills/BabelPolyfill'; + import { Utils } from '../src/Utils'; import { JSFuck } from '../src/enums/JSFuck'; const assert: Chai.AssertStatic = require('chai').assert; +BabelPolyfill.append(); + describe('Utils', () => { describe('arrayContains (array: any[], searchElement: any): boolean', () => { it('should return boolean depends on condition if array is contains given value or not', () => { diff --git a/test/polyfills/BabelPolyfill.ts b/test/polyfills/BabelPolyfill.ts new file mode 100644 index 00000000..f7a50747 --- /dev/null +++ b/test/polyfills/BabelPolyfill.ts @@ -0,0 +1,7 @@ +export class BabelPolyfill { + public static append (): void { + if (!(global)._babelPolyfill) { + require('babel-polyfill'); + } + } +}