|
|
|
@ -32,6 +32,12 @@ async function getDayList() {
|
|
|
|
|
|
|
|
|
|
document.querySelector('.loading').innerText = "Select a day"
|
|
|
|
|
document.querySelector('.loading').disabled = true
|
|
|
|
|
|
|
|
|
|
if (window.location.host.includes('tempest.local')) {
|
|
|
|
|
const lastDay = days[days.length - 1]
|
|
|
|
|
daySelector.value = lastDay
|
|
|
|
|
loadDay(lastDay).then(runDay)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function loadDay(dayNum) {
|
|
|
|
@ -78,7 +84,7 @@ async function loadDay(dayNum) {
|
|
|
|
|
output.innerText = 'Loaded day ' + dayNum
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function runLoaded(funcName, inputTextField, outputTextField) {
|
|
|
|
|
function runPart(funcName, inputTextField, outputTextField) {
|
|
|
|
|
const { memory } = wasmInstance.exports;
|
|
|
|
|
const wasmBuffer = memory.buffer;
|
|
|
|
|
|
|
|
|
@ -112,27 +118,14 @@ function runLoaded(funcName, inputTextField, outputTextField) {
|
|
|
|
|
return after - before
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
daySelector.value = ""
|
|
|
|
|
inputTextArea.value = ""
|
|
|
|
|
outputTextArea1.value = ""
|
|
|
|
|
outputTextArea2.value = ""
|
|
|
|
|
output.innerText = "Ready"
|
|
|
|
|
|
|
|
|
|
getDayList().then(() => {
|
|
|
|
|
daySelector.addEventListener('change', ev => {
|
|
|
|
|
loadDay(ev.target.value)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
runButton.addEventListener('click', ev => {
|
|
|
|
|
function runDay() {
|
|
|
|
|
let part1run = null, part2run = null
|
|
|
|
|
try {
|
|
|
|
|
part1run = runLoaded('part1', inputTextArea, outputTextArea1).toFixed(2)
|
|
|
|
|
part1run = runPart('part1', inputTextArea, outputTextArea1).toFixed(2)
|
|
|
|
|
} catch { }
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
part2run = runLoaded('part2', inputTextArea, outputTextArea2).toFixed(2)
|
|
|
|
|
part2run = runPart('part2', inputTextArea, outputTextArea2).toFixed(2)
|
|
|
|
|
} catch { }
|
|
|
|
|
|
|
|
|
|
if (part1run && part2run) {
|
|
|
|
@ -142,4 +135,18 @@ runButton.addEventListener('click', ev => {
|
|
|
|
|
} else {
|
|
|
|
|
output.innerText = `partial success; part 1: crashed, part 2 runtime: ${part2run}ms`
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
daySelector.value = ""
|
|
|
|
|
inputTextArea.value = ""
|
|
|
|
|
outputTextArea1.value = ""
|
|
|
|
|
outputTextArea2.value = ""
|
|
|
|
|
output.innerText = "Ready"
|
|
|
|
|
|
|
|
|
|
getDayList().then(() => {
|
|
|
|
|
daySelector.addEventListener('change', ev => {
|
|
|
|
|
loadDay(ev.target.value)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
runButton.addEventListener('click', runDay)
|
|
|
|
|