1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | module.exports = function (content, workerConstructor, workerOptions, url) {
|
7 | var globalScope = self || window;
|
8 |
|
9 | try {
|
10 | try {
|
11 | var blob;
|
12 |
|
13 | try {
|
14 |
|
15 | blob = new globalScope.Blob([content]);
|
16 | } catch (e) {
|
17 |
|
18 | var BlobBuilder = globalScope.BlobBuilder || globalScope.WebKitBlobBuilder || globalScope.MozBlobBuilder || globalScope.MSBlobBuilder;
|
19 | blob = new BlobBuilder();
|
20 | blob.append(content);
|
21 | blob = blob.getBlob();
|
22 | }
|
23 |
|
24 | var URL = globalScope.URL || globalScope.webkitURL;
|
25 | var objectURL = URL.createObjectURL(blob);
|
26 | var worker = new globalScope[workerConstructor](objectURL, workerOptions);
|
27 | URL.revokeObjectURL(objectURL);
|
28 | return worker;
|
29 | } catch (e) {
|
30 | return new globalScope[workerConstructor]("data:application/javascript,".concat(encodeURIComponent(content)), workerOptions);
|
31 | }
|
32 | } catch (e) {
|
33 | if (!url) {
|
34 | throw Error("Inline worker is not supported");
|
35 | }
|
36 |
|
37 | return new globalScope[workerConstructor](url, workerOptions);
|
38 | }
|
39 | }; |
\ | No newline at end of file |