3 Commits
Author SHA1 Message Date
Yi-Cyuan Chen ee1c332b60 fixed ci 2026-07-20 14:44:06 +08:00
Yi-Cyuan Chen f6407a6c0c fixed CI tests 2026-07-20 14:23:54 +08:00
Yi-Cyuan Chen 114d18e574 ### Changed
- web worker detection. #44
2026-07-20 11:07:48 +08:00
31 changed files with 1590 additions and 1233 deletions
+8 -4
View File
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
node-version: [16.x, 18.x, 20.x, 22.x] node-version: [16.x, 18.x, 20.x, 22.x, 24.x]
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -27,18 +27,22 @@ jobs:
run: npm ci run: npm ci
- name: Build - name: Build
if: matrix.node-version == '22.x' if: matrix.node-version == '24.x'
run: npm run build run: npm run build
- name: Check generated files
if: matrix.node-version == '24.x'
run: git diff --exit-code -- build
- name: Run tests - name: Run tests
run: npm test run: npm test
- name: Generate coverage report - name: Generate coverage report
if: matrix.node-version == '22.x' if: matrix.node-version == '24.x'
run: npm run coverage run: npm run coverage
- name: Upload to coveralls - name: Upload to coveralls
if: matrix.node-version == '22.x' if: matrix.node-version == '24.x'
uses: coverallsapp/github-action@v2 uses: coverallsapp/github-action@v2
with: with:
file: ./coverage.lcov file: ./coverage.lcov
+1
View File
@@ -2,3 +2,4 @@
/covreporter/ /covreporter/
/.nyc_output/ /.nyc_output/
/coverage/ /coverage/
coverage.lcov
+8
View File
@@ -1,5 +1,13 @@
# Change Log # Change Log
## v0.9.2 / 2026-07-20
### Fixed
- CI test.
## v0.9.1 / 2026-07-20
### Changed
- web worker detection. #44
## v0.9.0 / 2026-07-20 ## v0.9.0 / 2026-07-20
### Added ### Added
- Modern and lite builds generated from the same source. #44 - Modern and lite builds generated from the same source. #44
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "js-md5", "name": "js-md5",
"version": "0.9.0", "version": "0.9.2",
"main": ["src/md5.js"], "main": ["src/md5.js"],
"ignore": [ "ignore": [
"tests" "tests"
+2 -2
View File
@@ -2,7 +2,7 @@
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -16,7 +16,7 @@
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
/* istanbul ignore next */ /* istanbul ignore next */
var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node; var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node;
if (NODE_JS) { if (NODE_JS) {
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -8,7 +8,7 @@ var md5$1 = {exports: {}};
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -24,7 +24,7 @@ var md5$1 = {exports: {}};
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
if (WEB_WORKER) { if (WEB_WORKER) {
root = self; root = self;
} }
+2 -2
View File
@@ -13,7 +13,7 @@ var md5$1 = {exports: {}};
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -29,7 +29,7 @@ var md5$1 = {exports: {}};
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
/* istanbul ignore next */ /* istanbul ignore next */
var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node; var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node;
if (NODE_JS) { if (NODE_JS) {
+2 -2
View File
@@ -2,7 +2,7 @@
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -16,7 +16,7 @@
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
/* istanbul ignore next */ /* istanbul ignore next */
var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node; var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node;
if (NODE_JS) { if (NODE_JS) {
+2 -2
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -8,7 +8,7 @@ var md5$1 = {exports: {}};
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -24,7 +24,7 @@ var md5$1 = {exports: {}};
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
if (WEB_WORKER) { if (WEB_WORKER) {
root = self; root = self;
} }
+2 -2
View File
@@ -2,7 +2,7 @@
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -16,7 +16,7 @@
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
/* istanbul ignore next */ /* istanbul ignore next */
var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node; var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node;
if (NODE_JS) { if (NODE_JS) {
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -8,7 +8,7 @@ var md5$1 = {exports: {}};
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -24,7 +24,7 @@ var md5$1 = {exports: {}};
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
if (WEB_WORKER) { if (WEB_WORKER) {
root = self; root = self;
} }
+2 -2
View File
@@ -13,7 +13,7 @@ var md5$1 = {exports: {}};
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -29,7 +29,7 @@ var md5$1 = {exports: {}};
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
/* istanbul ignore next */ /* istanbul ignore next */
var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node; var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node;
if (NODE_JS) { if (NODE_JS) {
+2 -2
View File
@@ -13,7 +13,7 @@ var md5$1 = {exports: {}};
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -29,7 +29,7 @@ var md5$1 = {exports: {}};
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
/* istanbul ignore next */ /* istanbul ignore next */
var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node; var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node;
if (NODE_JS) { if (NODE_JS) {
+1 -1
View File
@@ -1254,7 +1254,7 @@
<br class="clear"> <br class="clear">
<footer> <footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Mon Jul 20 2026 10:19:21 GMT+0800 (Taipei Standard Time) Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.5</a>
</footer> </footer>
<script> prettyPrint(); </script> <script> prettyPrint(); </script>
+2 -2
View File
@@ -47,7 +47,7 @@
<dt class="tag-version">Version:</dt> <dt class="tag-version">Version:</dt>
<dd class="tag-version"><ul class="dummy"><li>0.9.0</li></ul></dd> <dd class="tag-version"><ul class="dummy"><li>0.9.2</li></ul></dd>
@@ -1483,7 +1483,7 @@ hash.update('The quick brown fox jumps over the lazy dog');</code></pre>
<br class="clear"> <br class="clear">
<footer> <footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Mon Jul 20 2026 10:19:21 GMT+0800 (Taipei Standard Time) Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.5</a>
</footer> </footer>
<script> prettyPrint(); </script> <script> prettyPrint(); </script>
+1 -1
View File
@@ -302,7 +302,7 @@ md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e</code></pre>
<br class="clear"> <br class="clear">
<footer> <footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Mon Jul 20 2026 10:19:21 GMT+0800 (Taipei Standard Time) Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.5</a>
</footer> </footer>
<script> prettyPrint(); </script> <script> prettyPrint(); </script>
+1 -1
View File
@@ -204,7 +204,7 @@ Author: Chen, Yi-Cyuan (emn178@gmail.com)</p></article>
<br class="clear"> <br class="clear">
<footer> <footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Mon Jul 20 2026 10:19:21 GMT+0800 (Taipei Standard Time) Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.5</a>
</footer> </footer>
<script> prettyPrint(); </script> <script> prettyPrint(); </script>
+1 -1
View File
@@ -1741,7 +1741,7 @@ hash.update('The quick brown fox jumps over the lazy dog');</code></pre>
<br class="clear"> <br class="clear">
<footer> <footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Mon Jul 20 2026 10:19:21 GMT+0800 (Taipei Standard Time) Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.5</a>
</footer> </footer>
<script> prettyPrint(); </script> <script> prettyPrint(); </script>
+1 -1
View File
@@ -1203,7 +1203,7 @@
<br class="clear"> <br class="clear">
<footer> <footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Mon Jul 20 2026 10:19:21 GMT+0800 (Taipei Standard Time) Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.5</a>
</footer> </footer>
<script> prettyPrint(); </script> <script> prettyPrint(); </script>
+3 -3
View File
@@ -30,7 +30,7 @@
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -50,7 +50,7 @@
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW &amp;&amp; typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' &amp;&amp; typeof self !== 'undefined' &amp;&amp; self instanceof WorkerGlobalScope;
/* istanbul ignore next */ /* istanbul ignore next */
var NODE_JS = !root.JS_MD5_NO_NODE_JS &amp;&amp; !WINDOW &amp;&amp; typeof process === 'object' &amp;&amp; process.versions &amp;&amp; process.versions.node; var NODE_JS = !root.JS_MD5_NO_NODE_JS &amp;&amp; !WINDOW &amp;&amp; typeof process === 'object' &amp;&amp; process.versions &amp;&amp; process.versions.node;
if (NODE_JS) { if (NODE_JS) {
@@ -948,7 +948,7 @@
<br class="clear"> <br class="clear">
<footer> <footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Mon Jul 20 2026 10:19:21 GMT+0800 (Taipei Standard Time) Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.5</a>
</footer> </footer>
<script> prettyPrint(); </script> <script> prettyPrint(); </script>
+7
View File
@@ -0,0 +1,7 @@
{
"templates": {
"default": {
"includeDate": false
}
}
}
+1510 -1173
View File
File diff suppressed because it is too large Load Diff
+8 -9
View File
@@ -1,6 +1,6 @@
{ {
"name": "js-md5", "name": "js-md5",
"version": "0.9.0", "version": "0.9.2",
"description": "A simple MD5 hash function for JavaScript supports UTF-8 encoding.", "description": "A simple MD5 hash function for JavaScript supports UTF-8 encoding.",
"main": "src/md5.js", "main": "src/md5.js",
"module": "build/md5.mjs", "module": "build/md5.mjs",
@@ -35,23 +35,22 @@
}, },
"types": "./index.d.ts", "types": "./index.d.ts",
"devDependencies": { "devDependencies": {
"@rollup/plugin-commonjs": "^28.0.5", "@rollup/plugin-commonjs": "^29.0.3",
"@rollup/plugin-terser": "^1.0.0", "@rollup/plugin-terser": "^1.0.0",
"expect.js": "~0.3.1", "expect.js": "~0.3.1",
"jsdoc": "~4.0.2", "jsdoc": "~4.0.2",
"mocha": "~10.2.0", "mocha": "^11.7.6",
"nyc": "^15.1.0", "nyc": "^18.0.0",
"requirejs": "^2.1.22", "requirejs": "^2.1.22",
"rollup": "^4.43.0", "rollup": "^4.43.0",
"tiny-worker": "^2.3.0" "tiny-worker": "^2.3.0"
}, },
"scripts": { "scripts": {
"test": "npm run compress && nyc mocha tests/node-test.js && node tests/build-test.js && node tests/esm-test.mjs", "test": "nyc mocha tests/node-test.js && node tests/build-test.js && node tests/esm-test.mjs",
"report": "nyc --reporter=html --reporter=text mocha tests/node-test.js", "report": "nyc --reporter=html --reporter=text mocha tests/node-test.js",
"coveralls": "nyc report --reporter=text-lcov | coveralls", "coverage": "nyc report --reporter=text-lcov > coverage.lcov",
"doc": "rm -rf doc;jsdoc src README.md -d doc", "doc": "rm -rf doc && jsdoc -c jsdoc.json src README.md -d doc",
"compress": "rollup -c", "build": "rollup -c && npm run doc"
"build": "npm run-script compress;npm run-script doc"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
+2 -2
View File
@@ -2,7 +2,7 @@
* [js-md5]{@link https://github.com/emn178/js-md5} * [js-md5]{@link https://github.com/emn178/js-md5}
* *
* @namespace md5 * @namespace md5
* @version 0.9.0 * @version 0.9.2
* @author Chen, Yi-Cyuan [emn178@gmail.com] * @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2026 * @copyright Chen, Yi-Cyuan 2014-2026
* @license MIT * @license MIT
@@ -22,7 +22,7 @@
if (root.JS_MD5_NO_WINDOW) { if (root.JS_MD5_NO_WINDOW) {
WINDOW = false; WINDOW = false;
} }
var WEB_WORKER = !WINDOW && typeof self === 'object'; var WEB_WORKER = typeof WorkerGlobalScope !== 'undefined' && typeof self !== 'undefined' && self instanceof WorkerGlobalScope;
/* istanbul ignore next */ /* istanbul ignore next */
var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node; var NODE_JS = !root.JS_MD5_NO_NODE_JS && !WINDOW && typeof process === 'object' && process.versions && process.versions.node;
if (NODE_JS) { if (NODE_JS) {
+2 -1
View File
@@ -103,12 +103,13 @@ require('./worker-test.js');
delete require.cache[require.resolve('./worker-test.js')]; delete require.cache[require.resolve('./worker-test.js')];
// cover webworker // cover webworker
WorkerGlobalScope = function () { }
JS_MD5_NO_WINDOW = true; JS_MD5_NO_WINDOW = true;
JS_MD5_NO_NODE_JS = true; JS_MD5_NO_NODE_JS = true;
WORKER = './worker.js'; WORKER = './worker.js';
SOURCE = '../src/md5.js'; SOURCE = '../src/md5.js';
window = global; window = global;
self = global; self = new WorkerGlobalScope();
Worker = function (file) { Worker = function (file) {
require(file); require(file);