1*03ce13f7SAndroid Build Coastguard Worker<!doctype html> 2*03ce13f7SAndroid Build Coastguard Worker<html lang="en-us"> 3*03ce13f7SAndroid Build Coastguard Worker<head> 4*03ce13f7SAndroid Build Coastguard Worker <meta charset="utf-8"> 5*03ce13f7SAndroid Build Coastguard Worker <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 6*03ce13f7SAndroid Build Coastguard Worker <title>Emscripten-Generated Code</title> 7*03ce13f7SAndroid Build Coastguard Worker <style> 8*03ce13f7SAndroid Build Coastguard Worker body { 9*03ce13f7SAndroid Build Coastguard Worker font-family: arial; 10*03ce13f7SAndroid Build Coastguard Worker margin: 0; 11*03ce13f7SAndroid Build Coastguard Worker padding: none; 12*03ce13f7SAndroid Build Coastguard Worker } 13*03ce13f7SAndroid Build Coastguard Worker 14*03ce13f7SAndroid Build Coastguard Worker .emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; } 15*03ce13f7SAndroid Build Coastguard Worker div.emscripten { text-align: center; } 16*03ce13f7SAndroid Build Coastguard Worker div.emscripten_border { border: 1px solid black; } 17*03ce13f7SAndroid Build Coastguard Worker 18*03ce13f7SAndroid Build Coastguard Worker #emscripten_logo { 19*03ce13f7SAndroid Build Coastguard Worker display: inline-block; 20*03ce13f7SAndroid Build Coastguard Worker margin: 0; 21*03ce13f7SAndroid Build Coastguard Worker } 22*03ce13f7SAndroid Build Coastguard Worker 23*03ce13f7SAndroid Build Coastguard Worker .spinner { 24*03ce13f7SAndroid Build Coastguard Worker height: 30px; 25*03ce13f7SAndroid Build Coastguard Worker width: 30px; 26*03ce13f7SAndroid Build Coastguard Worker margin: 0; 27*03ce13f7SAndroid Build Coastguard Worker margin-top: 20px; 28*03ce13f7SAndroid Build Coastguard Worker margin-left: 20px; 29*03ce13f7SAndroid Build Coastguard Worker display: inline-block; 30*03ce13f7SAndroid Build Coastguard Worker vertical-align: top; 31*03ce13f7SAndroid Build Coastguard Worker 32*03ce13f7SAndroid Build Coastguard Worker -webkit-animation: rotation .8s linear infinite; 33*03ce13f7SAndroid Build Coastguard Worker -moz-animation: rotation .8s linear infinite; 34*03ce13f7SAndroid Build Coastguard Worker -o-animation: rotation .8s linear infinite; 35*03ce13f7SAndroid Build Coastguard Worker animation: rotation 0.8s linear infinite; 36*03ce13f7SAndroid Build Coastguard Worker 37*03ce13f7SAndroid Build Coastguard Worker border-left: 5px solid rgb(235, 235, 235); 38*03ce13f7SAndroid Build Coastguard Worker border-right: 5px solid rgb(235, 235, 235); 39*03ce13f7SAndroid Build Coastguard Worker border-bottom: 5px solid rgb(235, 235, 235); 40*03ce13f7SAndroid Build Coastguard Worker border-top: 5px solid rgb(120, 120, 120); 41*03ce13f7SAndroid Build Coastguard Worker 42*03ce13f7SAndroid Build Coastguard Worker border-radius: 100%; 43*03ce13f7SAndroid Build Coastguard Worker background-color: rgb(189, 215, 46); 44*03ce13f7SAndroid Build Coastguard Worker } 45*03ce13f7SAndroid Build Coastguard Worker 46*03ce13f7SAndroid Build Coastguard Worker @-webkit-keyframes rotation { 47*03ce13f7SAndroid Build Coastguard Worker from {-webkit-transform: rotate(0deg);} 48*03ce13f7SAndroid Build Coastguard Worker to {-webkit-transform: rotate(360deg);} 49*03ce13f7SAndroid Build Coastguard Worker } 50*03ce13f7SAndroid Build Coastguard Worker @-moz-keyframes rotation { 51*03ce13f7SAndroid Build Coastguard Worker from {-moz-transform: rotate(0deg);} 52*03ce13f7SAndroid Build Coastguard Worker to {-moz-transform: rotate(360deg);} 53*03ce13f7SAndroid Build Coastguard Worker } 54*03ce13f7SAndroid Build Coastguard Worker @-o-keyframes rotation { 55*03ce13f7SAndroid Build Coastguard Worker from {-o-transform: rotate(0deg);} 56*03ce13f7SAndroid Build Coastguard Worker to {-o-transform: rotate(360deg);} 57*03ce13f7SAndroid Build Coastguard Worker } 58*03ce13f7SAndroid Build Coastguard Worker @keyframes rotation { 59*03ce13f7SAndroid Build Coastguard Worker from {transform: rotate(0deg);} 60*03ce13f7SAndroid Build Coastguard Worker to {transform: rotate(360deg);} 61*03ce13f7SAndroid Build Coastguard Worker } 62*03ce13f7SAndroid Build Coastguard Worker 63*03ce13f7SAndroid Build Coastguard Worker #status { 64*03ce13f7SAndroid Build Coastguard Worker display: inline-block; 65*03ce13f7SAndroid Build Coastguard Worker vertical-align: top; 66*03ce13f7SAndroid Build Coastguard Worker margin-top: 30px; 67*03ce13f7SAndroid Build Coastguard Worker margin-left: 20px; 68*03ce13f7SAndroid Build Coastguard Worker font-weight: bold; 69*03ce13f7SAndroid Build Coastguard Worker color: rgb(120, 120, 120); 70*03ce13f7SAndroid Build Coastguard Worker } 71*03ce13f7SAndroid Build Coastguard Worker 72*03ce13f7SAndroid Build Coastguard Worker #progress { 73*03ce13f7SAndroid Build Coastguard Worker height: 20px; 74*03ce13f7SAndroid Build Coastguard Worker width: 300px; 75*03ce13f7SAndroid Build Coastguard Worker } 76*03ce13f7SAndroid Build Coastguard Worker 77*03ce13f7SAndroid Build Coastguard Worker #controls { 78*03ce13f7SAndroid Build Coastguard Worker display: inline-block; 79*03ce13f7SAndroid Build Coastguard Worker float: right; 80*03ce13f7SAndroid Build Coastguard Worker vertical-align: top; 81*03ce13f7SAndroid Build Coastguard Worker margin-top: 30px; 82*03ce13f7SAndroid Build Coastguard Worker margin-right: 20px; 83*03ce13f7SAndroid Build Coastguard Worker } 84*03ce13f7SAndroid Build Coastguard Worker 85*03ce13f7SAndroid Build Coastguard Worker #output { 86*03ce13f7SAndroid Build Coastguard Worker width: 100%; 87*03ce13f7SAndroid Build Coastguard Worker height: 200px; 88*03ce13f7SAndroid Build Coastguard Worker margin: 0 auto; 89*03ce13f7SAndroid Build Coastguard Worker margin-top: 10px; 90*03ce13f7SAndroid Build Coastguard Worker border-left: 0px; 91*03ce13f7SAndroid Build Coastguard Worker border-right: 0px; 92*03ce13f7SAndroid Build Coastguard Worker padding-left: 0px; 93*03ce13f7SAndroid Build Coastguard Worker padding-right: 0px; 94*03ce13f7SAndroid Build Coastguard Worker display: block; 95*03ce13f7SAndroid Build Coastguard Worker background-color: black; 96*03ce13f7SAndroid Build Coastguard Worker color: white; 97*03ce13f7SAndroid Build Coastguard Worker font-family: 'Lucida Console', Monaco, monospace; 98*03ce13f7SAndroid Build Coastguard Worker outline: none; 99*03ce13f7SAndroid Build Coastguard Worker } 100*03ce13f7SAndroid Build Coastguard Worker </style> 101*03ce13f7SAndroid Build Coastguard Worker</head> 102*03ce13f7SAndroid Build Coastguard Worker<body> 103*03ce13f7SAndroid Build Coastguard Worker 104*03ce13f7SAndroid Build Coastguard Worker<div class="spinner" id='spinner'></div> 105*03ce13f7SAndroid Build Coastguard Worker<div class="emscripten" id="status">Downloading...</div> 106*03ce13f7SAndroid Build Coastguard Worker 107*03ce13f7SAndroid Build Coastguard Worker<div class="emscripten"> 108*03ce13f7SAndroid Build Coastguard Worker <progress value="0" max="100" id="progress" hidden=1></progress> 109*03ce13f7SAndroid Build Coastguard Worker</div> 110*03ce13f7SAndroid Build Coastguard Worker 111*03ce13f7SAndroid Build Coastguard Worker 112*03ce13f7SAndroid Build Coastguard Worker<textarea id="output" rows="8"></textarea> 113*03ce13f7SAndroid Build Coastguard Worker 114*03ce13f7SAndroid Build Coastguard Worker<script type='text/javascript'> 115*03ce13f7SAndroid Build Coastguard Worker var statusElement = document.getElementById('status'); 116*03ce13f7SAndroid Build Coastguard Worker var progressElement = document.getElementById('progress'); 117*03ce13f7SAndroid Build Coastguard Worker var spinnerElement = document.getElementById('spinner'); 118*03ce13f7SAndroid Build Coastguard Worker 119*03ce13f7SAndroid Build Coastguard Worker var Module = { 120*03ce13f7SAndroid Build Coastguard Worker preRun: [], 121*03ce13f7SAndroid Build Coastguard Worker postRun: [], 122*03ce13f7SAndroid Build Coastguard Worker print: (function() { 123*03ce13f7SAndroid Build Coastguard Worker var element = document.getElementById('output'); 124*03ce13f7SAndroid Build Coastguard Worker if (element) element.value = ''; // clear browser cache 125*03ce13f7SAndroid Build Coastguard Worker return function(text) { 126*03ce13f7SAndroid Build Coastguard Worker if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' '); 127*03ce13f7SAndroid Build Coastguard Worker // These replacements are necessary if you render to raw HTML 128*03ce13f7SAndroid Build Coastguard Worker //text = text.replace(/&/g, "&"); 129*03ce13f7SAndroid Build Coastguard Worker //text = text.replace(/</g, "<"); 130*03ce13f7SAndroid Build Coastguard Worker //text = text.replace(/>/g, ">"); 131*03ce13f7SAndroid Build Coastguard Worker //text = text.replace('\n', '<br>', 'g'); 132*03ce13f7SAndroid Build Coastguard Worker console.log(text); 133*03ce13f7SAndroid Build Coastguard Worker if (element) { 134*03ce13f7SAndroid Build Coastguard Worker element.value += text + "\n"; 135*03ce13f7SAndroid Build Coastguard Worker element.scrollTop = element.scrollHeight; // focus on bottom 136*03ce13f7SAndroid Build Coastguard Worker } 137*03ce13f7SAndroid Build Coastguard Worker }; 138*03ce13f7SAndroid Build Coastguard Worker })(), 139*03ce13f7SAndroid Build Coastguard Worker setStatus: function(text) { 140*03ce13f7SAndroid Build Coastguard Worker if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' }; 141*03ce13f7SAndroid Build Coastguard Worker if (text === Module.setStatus.last.text) return; 142*03ce13f7SAndroid Build Coastguard Worker var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/); 143*03ce13f7SAndroid Build Coastguard Worker var now = Date.now(); 144*03ce13f7SAndroid Build Coastguard Worker if (m && now - Module.setStatus.last.time < 30) return; // if this is a progress update, skip it if too soon 145*03ce13f7SAndroid Build Coastguard Worker Module.setStatus.last.time = now; 146*03ce13f7SAndroid Build Coastguard Worker Module.setStatus.last.text = text; 147*03ce13f7SAndroid Build Coastguard Worker if (m) { 148*03ce13f7SAndroid Build Coastguard Worker text = m[1]; 149*03ce13f7SAndroid Build Coastguard Worker progressElement.value = parseInt(m[2])*100; 150*03ce13f7SAndroid Build Coastguard Worker progressElement.max = parseInt(m[4])*100; 151*03ce13f7SAndroid Build Coastguard Worker progressElement.hidden = false; 152*03ce13f7SAndroid Build Coastguard Worker spinnerElement.hidden = false; 153*03ce13f7SAndroid Build Coastguard Worker } else { 154*03ce13f7SAndroid Build Coastguard Worker progressElement.value = null; 155*03ce13f7SAndroid Build Coastguard Worker progressElement.max = null; 156*03ce13f7SAndroid Build Coastguard Worker progressElement.hidden = true; 157*03ce13f7SAndroid Build Coastguard Worker if (!text) spinnerElement.style.display = 'none'; 158*03ce13f7SAndroid Build Coastguard Worker } 159*03ce13f7SAndroid Build Coastguard Worker statusElement.innerHTML = text; 160*03ce13f7SAndroid Build Coastguard Worker }, 161*03ce13f7SAndroid Build Coastguard Worker totalDependencies: 0, 162*03ce13f7SAndroid Build Coastguard Worker monitorRunDependencies: function(left) { 163*03ce13f7SAndroid Build Coastguard Worker this.totalDependencies = Math.max(this.totalDependencies, left); 164*03ce13f7SAndroid Build Coastguard Worker Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.'); 165*03ce13f7SAndroid Build Coastguard Worker } 166*03ce13f7SAndroid Build Coastguard Worker }; 167*03ce13f7SAndroid Build Coastguard Worker Module.setStatus('Downloading...'); 168*03ce13f7SAndroid Build Coastguard Worker window.onerror = function(event) { 169*03ce13f7SAndroid Build Coastguard Worker // TODO: do not warn on ok events like simulating an infinite loop or exitStatus 170*03ce13f7SAndroid Build Coastguard Worker Module.setStatus('Exception thrown, see JavaScript console'); 171*03ce13f7SAndroid Build Coastguard Worker spinnerElement.style.display = 'none'; 172*03ce13f7SAndroid Build Coastguard Worker Module.setStatus = function(text) { 173*03ce13f7SAndroid Build Coastguard Worker if (text) console.error('[post-exception status] ' + text); 174*03ce13f7SAndroid Build Coastguard Worker }; 175*03ce13f7SAndroid Build Coastguard Worker }; 176*03ce13f7SAndroid Build Coastguard Worker </script> 177*03ce13f7SAndroid Build Coastguard Worker{{{ SCRIPT }}} 178*03ce13f7SAndroid Build Coastguard Worker</body> 179*03ce13f7SAndroid Build Coastguard Worker</html> 180