Skip to content

Commit 4eebe4c

Browse files
committed
Fix -sMODULARIZE + html output. NFC
This worked with MINIMAL_RUNTIME but would error out otherwise. This removes the need to the custom shell_that_launches_modularize.html we used in test browser_test.py. Fixes: #7950
1 parent 08e031c commit 4eebe4c

18 files changed

+134
-268
lines changed

html/shell.html

Lines changed: 38 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,35 @@
4545
e.preventDefault();
4646
}, false);
4747

48+
var setStatus = (text) => {
49+
if (!setStatus.last) setStatus.last = { time: Date.now(), text: '' };
50+
if (text === setStatus.last.text) return;
51+
var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
52+
var now = Date.now();
53+
// if this is a progress update, skip it if too soon
54+
if (m && now - setStatus.last.time < 30) return;
55+
setStatus.last.time = now;
56+
setStatus.last.text = text;
57+
if (m) {
58+
text = m[1];
59+
progressElement.value = parseInt(m[2])*100;
60+
progressElement.max = parseInt(m[4])*100;
61+
progressElement.hidden = false;
62+
spinnerElement.hidden = false;
63+
} else {
64+
progressElement.value = null;
65+
progressElement.max = null;
66+
progressElement.hidden = true;
67+
if (!text) spinnerElement.style.display = 'none';
68+
}
69+
statusElement.innerHTML = text;
70+
};
71+
72+
#if MODULARIZE && !EXPORT_ES6
73+
var moduleArgs = {
74+
#else
4875
var Module = {
76+
#endif
4977
print(...args) {
5078
console.log(...args);
5179
// These replacements are necessary if you render to raw HTML
@@ -60,45 +88,28 @@
6088
}
6189
},
6290
canvas: canvasElement,
63-
setStatus(text) {
64-
if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' };
65-
if (text === Module.setStatus.last.text) return;
66-
var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
67-
var now = Date.now();
68-
// if this is a progress update, skip it if too soon
69-
if (m && now - Module.setStatus.last.time < 30) return;
70-
Module.setStatus.last.time = now;
71-
Module.setStatus.last.text = text;
72-
if (m) {
73-
text = m[1];
74-
progressElement.value = parseInt(m[2])*100;
75-
progressElement.max = parseInt(m[4])*100;
76-
progressElement.hidden = false;
77-
spinnerElement.hidden = false;
78-
} else {
79-
progressElement.value = null;
80-
progressElement.max = null;
81-
progressElement.hidden = true;
82-
if (!text) spinnerElement.style.display = 'none';
83-
}
84-
statusElement.innerHTML = text;
85-
},
91+
setStatus: setStatus,
8692
totalDependencies: 0,
8793
monitorRunDependencies(left) {
8894
this.totalDependencies = Math.max(this.totalDependencies, left);
89-
Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
95+
setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
9096
}
9197
};
92-
Module.setStatus('Downloading...');
98+
setStatus('Downloading...');
9399
window.onerror = (event) => {
94100
// TODO: do not warn on ok events like simulating an infinite loop or exitStatus
95-
Module.setStatus('Exception thrown, see JavaScript console');
101+
setStatus('Exception thrown, see JavaScript console');
96102
spinnerElement.style.display = 'none';
97-
Module.setStatus = (text) => {
103+
setStatus = (text) => {
98104
if (text) console.error('[post-exception status] ' + text);
99105
};
100106
};
101107
</script>
102108
{{{ SCRIPT }}}
109+
#if MODULARIZE && !EXPORT_ES6
110+
<script type='text/javascript'>
111+
{{{ EXPORT_NAME }}}(moduleArgs);
112+
</script>
113+
#endif
103114
</body>
104115
</html>

html/shell_minimal.html

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,34 @@
8484
e.preventDefault();
8585
}, false);
8686

87+
function setStatus(text) {
88+
if (!setStatus.last) setStatus.last = { time: Date.now(), text: '' };
89+
if (text === setStatus.last.text) return;
90+
var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
91+
var now = Date.now();
92+
if (m && now - setStatus.last.time < 30) return; // if this is a progress update, skip it if too soon
93+
setStatus.last.time = now;
94+
setStatus.last.text = text;
95+
if (m) {
96+
text = m[1];
97+
progressElement.value = parseInt(m[2])*100;
98+
progressElement.max = parseInt(m[4])*100;
99+
progressElement.hidden = false;
100+
spinnerElement.hidden = false;
101+
} else {
102+
progressElement.value = null;
103+
progressElement.max = null;
104+
progressElement.hidden = true;
105+
if (!text) spinnerElement.hidden = true;
106+
}
107+
statusElement.innerHTML = text;
108+
}
109+
110+
#if MODULARIZE || !EXPORT_ES6
111+
var moduleArgs = {
112+
#else
87113
var Module = {
114+
#endif
88115
print(...args) {
89116
// These replacements are necessary if you render to raw HTML
90117
//text = text.replace(/&/g, "&amp;");
@@ -99,43 +126,27 @@
99126
}
100127
},
101128
canvas: canvasElement,
102-
setStatus(text) {
103-
if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' };
104-
if (text === Module.setStatus.last.text) return;
105-
var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
106-
var now = Date.now();
107-
if (m && now - Module.setStatus.last.time < 30) return; // if this is a progress update, skip it if too soon
108-
Module.setStatus.last.time = now;
109-
Module.setStatus.last.text = text;
110-
if (m) {
111-
text = m[1];
112-
progressElement.value = parseInt(m[2])*100;
113-
progressElement.max = parseInt(m[4])*100;
114-
progressElement.hidden = false;
115-
spinnerElement.hidden = false;
116-
} else {
117-
progressElement.value = null;
118-
progressElement.max = null;
119-
progressElement.hidden = true;
120-
if (!text) spinnerElement.hidden = true;
121-
}
122-
statusElement.innerHTML = text;
123-
},
129+
setStatus: setStatus,
124130
totalDependencies: 0,
125131
monitorRunDependencies(left) {
126132
this.totalDependencies = Math.max(this.totalDependencies, left);
127-
Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
133+
setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
128134
}
129135
};
130-
Module.setStatus('Downloading...');
136+
setStatus('Downloading...');
131137
window.onerror = () => {
132-
Module.setStatus('Exception thrown, see JavaScript console');
138+
setStatus('Exception thrown, see JavaScript console');
133139
spinnerElement.style.display = 'none';
134-
Module.setStatus = (text) => {
140+
setStatus = (text) => {
135141
if (text) console.error('[post-exception status] ' + text);
136142
};
137143
};
138144
</script>
139145
{{{ SCRIPT }}}
146+
#if MODULARIZE && !EXPORT_ES6
147+
<script type='text/javascript'>
148+
{{{ EXPORT_NAME }}}(moduleArgs);
149+
</script>
150+
#endif
140151
</body>
141152
</html>

html/shell_minimal_runtime.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
<script>
55

66
#if !MODULARIZE
7-
var {{{ EXPORT_NAME }}} = {};
7+
var {{{ EXPORT_NAME }}} = {};
88
#endif
99

1010
#if WASM == 2
1111
var supportsWasm = window.WebAssembly && location.search.indexOf('_rwasm=0') < 0;
1212
#endif
1313

14-
// Depending on the build flags that one uses, different files need to be downloaded
15-
// to load the compiled page. The right set of files will be expanded to be downloaded
16-
// via the directive below.
14+
// Depending on the build flags that one uses, different files need to be downloaded
15+
// to load the compiled page. The right set of files will be expanded to be downloaded
16+
// via the directive below.
1717
{{{ DOWNLOAD_JS_AND_WASM_FILES }}}
1818

1919
#if SINGLE_FILE
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"a.html": 519,
3-
"a.html.gz": 357,
2+
"a.html": 515,
3+
"a.html.gz": 355,
44
"a.js": 4309,
55
"a.js.gz": 2217,
66
"a.wasm": 1329,
77
"a.wasm.gz": 895,
8-
"total": 6157,
9-
"total_gz": 3469
8+
"total": 6153,
9+
"total_gz": 3467
1010
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"a.html": 552,
3-
"a.html.gz": 373,
2+
"a.html": 548,
3+
"a.html.gz": 371,
44
"a.js": 7262,
55
"a.js.gz": 3324,
66
"a.wasm": 7387,
77
"a.wasm.gz": 3419,
8-
"total": 15201,
9-
"total_gz": 7116
8+
"total": 15197,
9+
"total_gz": 7114
1010
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"a.html": 552,
3-
"a.html.gz": 373,
2+
"a.html": 548,
3+
"a.html.gz": 371,
44
"a.js": 5353,
55
"a.js.gz": 2522,
66
"a.wasm": 6036,
77
"a.wasm.gz": 2854,
8-
"total": 11941,
9-
"total_gz": 5749
8+
"total": 11937,
9+
"total_gz": 5747
1010
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"a.html": 519,
3-
"a.html.gz": 357,
2+
"a.html": 515,
3+
"a.html.gz": 355,
44
"a.js": 855,
55
"a.js.gz": 543,
66
"a.wasm": 1841,
77
"a.wasm.gz": 1067,
8-
"total": 3215,
9-
"total_gz": 1967
8+
"total": 3211,
9+
"total_gz": 1965
1010
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"a.html": 454,
3-
"a.html.gz": 321,
2+
"a.html": 450,
3+
"a.html.gz": 318,
44
"a.js": 4437,
55
"a.js.gz": 2281,
66
"a.wasm": 8304,
77
"a.wasm.gz": 5647,
8-
"total": 13195,
9-
"total_gz": 8249
8+
"total": 13191,
9+
"total_gz": 8246
1010
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
2-
"a.html": 346,
3-
"a.html.gz": 255,
2+
"a.html": 342,
3+
"a.html.gz": 252,
44
"a.js": 18182,
55
"a.js.gz": 9814,
6-
"total": 18528,
7-
"total_gz": 10069
6+
"total": 18524,
7+
"total_gz": 10066
88
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"a.html": 454,
3-
"a.html.gz": 321,
2+
"a.html": 450,
3+
"a.html.gz": 318,
44
"a.js": 3975,
55
"a.js.gz": 2123,
66
"a.wasm": 8304,
77
"a.wasm.gz": 5647,
8-
"total": 12733,
9-
"total_gz": 8091
8+
"total": 12729,
9+
"total_gz": 8088
1010
}

0 commit comments

Comments
 (0)