|
1 | 1 | (function() {
|
2 |
| - function evalSources(sources) { |
3 |
| - var modules = {}; |
4 |
| - function dirname(str) { |
5 |
| - var ix = str.lastIndexOf("/"); |
6 |
| - return ix < 0 ? "" : str.slice(0, ix); |
7 |
| - } |
8 |
| - function resolvePath(a, b) { |
9 |
| - if (b[0] === "." && b[1] === "/") { |
10 |
| - return dirname(a) + b.slice(1); |
11 |
| - } |
12 |
| - if (b[0] === "." && b[1] === "." && b[2] === "/") { |
13 |
| - return dirname(dirname(a)) + b.slice(2); |
14 |
| - } |
15 |
| - return b; |
16 |
| - } |
17 |
| - return function load(name) { |
18 |
| - if (modules[name]) { |
19 |
| - return modules[name].exports; |
20 |
| - } |
21 |
| - function require(path) { |
22 |
| - return load(resolvePath(name, path)); |
23 |
| - } |
24 |
| - var module = modules[name] = { exports: {} }; |
25 |
| - new Function("module", "exports", "require", sources[name])(module, module.exports, require); |
26 |
| - return module.exports; |
27 |
| - }; |
28 |
| - } |
29 |
| - |
30 | 2 | var parent;
|
31 | 3 |
|
32 | 4 | document.addEventListener("DOMContentLoaded", function() {
|
33 | 5 | window.addEventListener("message", function(event) {
|
34 | 6 | parent = event.source;
|
35 | 7 | parent.postMessage("trypurescript", "*");
|
36 |
| - var file = evalSources(event.data)("<file>"); |
37 |
| - if (file.main && typeof file.main === "function") { |
38 |
| - file.main(); |
39 |
| - } |
| 8 | + const code = ` |
| 9 | + ${event.data.code} |
| 10 | + main(); |
| 11 | + `; |
| 12 | + const scriptEl = document.createElement("script"); |
| 13 | + scriptEl.type = "module"; |
| 14 | + scriptEl.appendChild(document.createTextNode(code)); |
| 15 | + document.body.appendChild(scriptEl); |
40 | 16 | }, { once: true });
|
41 | 17 | }, { once: true });
|
42 | 18 |
|
|
0 commit comments