blob: 9897d8572f22a0e66ba6c4704606d94fb66bba59 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>WebIDL 2 Checker</title>
<script src='../lib/webidl2.js'></script>
<script>
let parserResult = undefined;
function formatParserOutput() {
const outputEl = document.getElementById('webidl-checker-output');
if (parserResult) {
const prettyPrintEl = document.getElementById('pretty-print');
outputEl.innerText = JSON.stringify(parserResult, null, prettyPrintEl.checked ? 2 : null);
} else {
outputEl.innerText = '';
}
}
function checkWebIDL(textToCheck) {
const validation = document.getElementById('webidl-checker-validation');
parserResult = null;
try {
parserResult = WebIDL2.parse(textToCheck);
validation.innerText = 'WebIDL parsed successfully!';
} catch (e) {
validation.innerText = 'Exception while parsing WebIDL. See JavaScript console for more details.\n\n' + e.toString();
// Pass it along to the JavaScript console.
throw e;
} finally {
formatParserOutput();
}
}
</script>
<style>
textarea {
font-family: monospace;
}
</style>
</head>
<body>
<h2>WebIDL Checker</h2>
<p>This is an online checker for WebIDL built on the <a href="https://github.com/w3c/webidl2.js">webidl2.js</a> project.</p>
<p>Enter your WebIDL to check below:</p>
<textarea id='webidl-to-check' rows='20' cols='80'></textarea>
<br>
<input type='button' value='Check WebIDL' onclick='checkWebIDL(document.getElementById("webidl-to-check").value)'>
<p>Validation results:</p>
<textarea id='webidl-checker-validation' rows='20' cols='80'></textarea>
<p>Parser output:</p>
<textarea id='webidl-checker-output' rows='20' cols='80'></textarea>
<br>
<input type='checkbox' id='pretty-print' checked='true' onchange='formatParserOutput()'>Pretty Print
</body>
</html>