1// Populate the sidebar 2// 3// This is a script, and not included directly in the page, to control the total size of the book. 4// The TOC contains an entry for each page, so if each page includes a copy of the TOC, 5// the total size of the page becomes O(n**2). 6class MDBookSidebarScrollbox extends HTMLElement { 7 constructor() { 8 super(); 9 } 10 connectedCallback() { 11 this.innerHTML = '<ol class="chapter"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="index.html">Welcome to the jank alpha!</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="foreword.html">Foreword</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="getting-started/index.html"><strong aria-hidden="true">1.</strong> Getting Started</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="getting-started/01-installation.html"><strong aria-hidden="true">1.1.</strong> Installation</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="getting-started/02-hello-world.html"><strong aria-hidden="true">1.2.</strong> Hello, world!</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="getting-started/03-hello-leiningen.html"><strong aria-hidden="true">1.3.</strong> Hello, Leiningen!</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="getting-started/04-hello-nrepl.html"><strong aria-hidden="true">1.4.</strong> Hello, nREPL!</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="cpp-interop/index.html"><strong aria-hidden="true">2.</strong> Reaching into C++</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="cpp-interop/native-values.html"><strong aria-hidden="true">2.1.</strong> Working with native values</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="cpp-interop/native-types.html"><strong aria-hidden="true">2.2.</strong> Working with native types</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="cpp-interop/native-functions.html"><strong aria-hidden="true">2.3.</strong> Working with native functions</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="cpp-interop/dsl.html"><strong aria-hidden="true">2.4.</strong> The C++ DSL</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="cpp-interop/native-exceptions.html"><strong aria-hidden="true">2.5.</strong> Throwing and catching exceptions</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="cpp-interop/cast.html"><strong aria-hidden="true">2.6.</strong> Casting between native types</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="cpp-interop/cpp-raw.html"><strong aria-hidden="true">2.7.</strong> Embedding raw C++</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="cpp-interop/cpp-ns.html"><strong aria-hidden="true">2.8.</strong> The cpp namespace</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="project/index.html"><strong aria-hidden="true">3.</strong> Working with projects</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="project/test.html"><strong aria-hidden="true">3.1.</strong> Testing</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="project/aot.html"><strong aria-hidden="true">3.2.</strong> AOT compiling</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="jank-build/index.html"><strong aria-hidden="true">4.</strong> The jank build system</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="jank-build/overview.html"><strong aria-hidden="true">4.1.</strong> Build system overview</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="jank-build/build-cache.html"><strong aria-hidden="true">4.2.</strong> The build cache</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="jank-build/packaging-system-lib.html"><strong aria-hidden="true">4.3.</strong> Guide: Packaging a system library</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="jank-build/packaging-source-lib.html"><strong aria-hidden="true">4.4.</strong> Guide: Packaging a source library</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="differences-from-clojure.html"><strong aria-hidden="true">5.</strong> Differences from Clojure</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="troubleshooting/index.html"><strong aria-hidden="true">6.</strong> Troubleshooting</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="troubleshooting/health-check.html"><strong aria-hidden="true">6.1.</strong> Checking jank's health</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="troubleshooting/printing.html"><strong aria-hidden="true">6.2.</strong> Printing jank's IR or codegen</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="troubleshooting/stack-trace.html"><strong aria-hidden="true">6.3.</strong> How to get a stack trace</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="troubleshooting/getting-help.html"><strong aria-hidden="true">6.4.</strong> Where to get help</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="troubleshooting/faq.html"><strong aria-hidden="true">6.5.</strong> FAQ</a></span></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="reference/index.html"><strong aria-hidden="true">7.</strong> Reference</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error.html"><strong aria-hidden="true">7.1.</strong> Errors</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/lex/index.html"><strong aria-hidden="true">7.1.1.</strong> Lex</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/unexpected-eof.html"><strong aria-hidden="true">7.1.1.1.</strong> lex/unexpected-eof</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/expecting-whitespace.html"><strong aria-hidden="true">7.1.1.2.</strong> lex/expecting-whitespace</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/invalid-unicode.html"><strong aria-hidden="true">7.1.1.3.</strong> lex/invalid-unicode</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/incomplete-character.html"><strong aria-hidden="true">7.1.1.4.</strong> lex/incomplete-character</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/invalid-number.html"><strong aria-hidden="true">7.1.1.5.</strong> lex/invalid-number</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/invalid-ratio.html"><strong aria-hidden="true">7.1.1.6.</strong> lex/invalid-ratio</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/invalid-symbol.html"><strong aria-hidden="true">7.1.1.7.</strong> lex/invalid-symbol</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/invalid-keyword.html"><strong aria-hidden="true">7.1.1.8.</strong> lex/invalid-keyword</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/unterminated-string.html"><strong aria-hidden="true">7.1.1.9.</strong> lex/unterminated-string</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/unexpected-character.html"><strong aria-hidden="true">7.1.1.10.</strong> lex/unexpected-character</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/lex/internal-failure.html"><strong aria-hidden="true">7.1.1.11.</strong> lex/internal-failure</a></span></li></ol><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/parse/index.html"><strong aria-hidden="true">7.1.2.</strong> Parse</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-unicode.html"><strong aria-hidden="true">7.1.2.1.</strong> parse/invalid-unicode</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-character.html"><strong aria-hidden="true">7.1.2.2.</strong> parse/invalid-character</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-string-escape.html"><strong aria-hidden="true">7.1.2.3.</strong> parse/invalid-string-escape</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/unexpected-closing-character.html"><strong aria-hidden="true">7.1.2.4.</strong> parse/unexpected-closing-character</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/unterminated-list.html"><strong aria-hidden="true">7.1.2.5.</strong> parse/unterminated-list</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/unterminated-vector.html"><strong aria-hidden="true">7.1.2.6.</strong> parse/unterminated-vector</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/unterminated-map.html"><strong aria-hidden="true">7.1.2.7.</strong> parse/unterminated-map</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/unterminated-set.html"><strong aria-hidden="true">7.1.2.8.</strong> parse/unterminated-set</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper">
11<a href="reference/error/parse/odd-entries-in-map.html"><strong aria-hidden="true">7.1.2.9.</strong> parse/odd-entries-in-map</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/duplicate-keys-in-map.html"><strong aria-hidden="true">7.1.2.10.</strong> parse/duplicate-keys-in-map</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/duplicate-items-in-set.html"><strong aria-hidden="true">7.1.2.11.</strong> parse/duplicate-items-in-set</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-quote.html"><strong aria-hidden="true">7.1.2.12.</strong> parse/invalid-quote</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-meta-hint-value.html"><strong aria-hidden="true">7.1.2.13.</strong> parse/invalid-meta-hint-value</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-meta-hint-target.html"><strong aria-hidden="true">7.1.2.14.</strong> parse/invalid-meta-hint-target</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/unsupported-reader-macro.html"><strong aria-hidden="true">7.1.2.15.</strong> parse/unsupported-reader-macro</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/nested-shorthand-function.html"><strong aria-hidden="true">7.1.2.16.</strong> parse/nested-shorthand-function</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-shorthand-function-parameter.html"><strong aria-hidden="true">7.1.2.17.</strong> parse/invalid-shorthand-function-parameter</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-reader-var.html"><strong aria-hidden="true">7.1.2.18.</strong> parse/invalid-reader-var</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-reader-comment.html"><strong aria-hidden="true">7.1.2.19.</strong> parse/invalid-reader-comment</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-reader-conditional.html"><strong aria-hidden="true">7.1.2.20.</strong> parse/invalid-reader-conditional</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-reader-splice.html"><strong aria-hidden="true">7.1.2.21.</strong> parse/invalid-reader-splice</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-reader-gensym.html"><strong aria-hidden="true">7.1.2.22.</strong> parse/invalid-reader-gensym</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-reader-symbolic-value.html"><strong aria-hidden="true">7.1.2.23.</strong> parse/invalid-reader-symbolic-value</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-reader-tag-value.html"><strong aria-hidden="true">7.1.2.24.</strong> parse/invalid-reader-tag-value</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-regex.html"><strong aria-hidden="true">7.1.2.25.</strong> parse/invalid-regex</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-uuid.html"><strong aria-hidden="true">7.1.2.26.</strong> parse/invalid-uuid</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-inst.html"><strong aria-hidden="true">7.1.2.27.</strong> parse/invalid-inst</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-syntax-quote.html"><strong aria-hidden="true">7.1.2.28.</strong> parse/invalid-syntax-quote</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-syntax-unquote.html"><strong aria-hidden="true">7.1.2.29.</strong> parse/invalid-syntax-unquote</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-syntax-unquote-splice.html"><strong aria-hidden="true">7.1.2.30.</strong> parse/invalid-syntax-unquote-splice</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-reader-deref.html"><strong aria-hidden="true">
117.1.2.31.</strong> parse/invalid-reader-deref</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-ratio.html"><strong aria-hidden="true">7.1.2.32.</strong> parse/invalid-ratio</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-keyword.html"><strong aria-hidden="true">7.1.2.33.</strong> parse/invalid-keyword</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/invalid-data-reader.html"><strong aria-hidden="true">7.1.2.34.</strong> parse/invalid-data-reader</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/parse/internal-failure.html"><strong aria-hidden="true">7.1.2.35.</strong> parse/internal-failure</a></span></li></ol><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/analyze/index.html"><strong aria-hidden="true">7.1.3.</strong> Analyze</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-case.html"><strong aria-hidden="true">7.1.3.1.</strong> analyze/invalid-case</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-def.html"><strong aria-hidden="true">7.1.3.2.</strong> analyze/invalid-def</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-fn.html"><strong aria-hidden="true">7.1.3.3.</strong> analyze/invalid-fn</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-fn-parameters.html"><strong aria-hidden="true">7.1.3.4.</strong> analyze/invalid-fn-parameters</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-recur-position.html"><strong aria-hidden="true">7.1.3.5.</strong> analyze/invalid-recur-position</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-recur-from-try.html"><strong aria-hidden="true">7.1.3.6.</strong> analyze/invalid-recur-from-try</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-recur-args.html"><strong aria-hidden="true">7.1.3.7.</strong> analyze/invalid-recur-args</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-let.html"><strong aria-hidden="true">7.1.3.8.</strong> analyze/invalid-let</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-letfn.html"><strong aria-hidden="true">7.1.3.9.</strong> analyze/invalid-letfn</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-if.html"><strong aria-hidden="true">7.1.3.10.</strong> analyze/invalid-if</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-quote.html"><strong aria-hidden="true">7.1.3.11.</strong> analyze/invalid-quote</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-var-reference.html"><strong aria-hidden="true">7.1.3.12.</strong> analyze/invalid-var-reference</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/unresolved-var.html"><strong aria-hidden="true">7.1.3.13.</strong> analyze/unresolved-var</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/unresolved-symbol.html"><strong aria-hidden="true">7.1.3.14.</strong> analyze/unresolved-symbol</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/macro-expansion-exception.html"><strong aria-hidden="true">7.1.3.15.</strong> analyze/macro-expansion-exception</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-operator-call.html"><strong aria-hidden="true">
117.1.3.16.</strong> analyze/invalid-cpp-operator-call</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-constructor-call.html"><strong aria-hidden="true">7.1.3.17.</strong> analyze/invalid-cpp-constructor-call</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-member-call.html"><strong aria-hidden="true">7.1.3.18.</strong> analyze/invalid-cpp-member-call</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-capture.html"><strong aria-hidden="true">7.1.3.19.</strong> analyze/invalid-cpp-capture</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-position.html"><strong aria-hidden="true">7.1.3.20.</strong> analyze/invalid-cpp-position</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/mismatched-if-types.html"><strong aria-hidden="true">7.1.3.21.</strong> analyze/mismatched-if-types</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-call.html"><strong aria-hidden="true">7.1.3.22.</strong> analyze/invalid-cpp-call</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-conversion.html"><strong aria-hidden="true">7.1.3.23.</strong> analyze/invalid-cpp-conversion</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-symbol.html"><strong aria-hidden="true">7.1.3.24.</strong> analyze/invalid-cpp-symbol</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/unresolved-cpp-symbol.html"><strong aria-hidden="true">7.1.3.25.</strong> analyze/unresolved-cpp-symbol</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-raw.html"><strong aria-hidden="true">7.1.3.26.</strong> analyze/invalid-cpp-raw</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-type.html"><strong aria-hidden="true">7.1.3.27.</strong> analyze/invalid-cpp-type</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-type-position.html"><strong aria-hidden="true">7.1.3.28.</strong> analyze/invalid-cpp-type-position</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-dsl.html"><strong aria-hidden="true">7.1.3.29.</strong> analyze/invalid-cpp-dsl</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-value.html"><strong aria-hidden="true">7.1.3.30.</strong> analyze/invalid-cpp-value</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-cast.html"><strong aria-hidden="true">7.1.3.31.</strong> analyze/invalid-cpp-cast</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-unsafe-cast.html"><strong aria-hidden="true">7.1.3.32.</strong> analyze/invalid-cpp-unsafe-cast</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-box.html"><strong aria-hidden="true">7.1.3.33.</strong> analyze/invalid-cpp-box</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-unbox.html"><strong aria-hidden="true">7.1.3.34.</strong> analyze/invalid-cpp-unbox</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-new.html"><strong aria-hidden="true">7.1.3.35.</strong> analyze/invalid-cpp-new</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/invalid-cpp-delete.html"><strong aria-hidden="true">7.1.3.36.</strong> analyze/invalid-cpp-delete</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper">
11<a href="reference/error/analyze/invalid-cpp-member-access.html"><strong aria-hidden="true">7.1.3.37.</strong> analyze/invalid-cpp-member-access</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/analyze/internal-failure.html"><strong aria-hidden="true">7.1.3.38.</strong> analyze/internal-failure</a></span></li></ol><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/codegen/index.html"><strong aria-hidden="true">7.1.4.</strong> Codegen</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/codegen/internal-failure.html"><strong aria-hidden="true">7.1.4.1.</strong> codegen/internal-failure</a></span></li></ol><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/aot/index.html"><strong aria-hidden="true">7.1.5.</strong> AOT</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section">
11<li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/aot/unresolved-main.html"><strong aria-hidden="true">7.1.5.1.</strong> aot/unresolved-main</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/aot/internal-failure.html"><strong aria-hidden="true">7.1.5.2.</strong> aot/internal-failure</a></span></li></ol><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/runtime/index.html"><strong aria-hidden="true">7.1.6.</strong> Runtime</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/module-not-found.html"><strong aria-hidden="true">7.1.6.1.</strong> runtime/module-not-found</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/module-binary-without-source.html"><strong aria-hidden="true">7.1.6.2.</strong> runtime/module-binary-without-source</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/unable-to-open-file.html"><strong aria-hidden="true">7.1.6.3.</strong> runtime/unable-to-open-file</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/invalid-cpp-eval.html"><strong aria-hidden="true">7.1.6.4.</strong> runtime/invalid-cpp-eval</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/unable-to-load-module.html"><strong aria-hidden="true">7.1.6.5.</strong> runtime/unable-to-load-module</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/invalid-unbox.html"><strong aria-hidden="true">7.1.6.6.</strong> runtime/invalid-unbox</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/non-metadatable-value.html"><strong aria-hidden="true">7.1.6.7.</strong> runtime/non-metadatable-value</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/invalid-referred-global-symbol.html"><strong aria-hidden="true">7.1.6.8.</strong> runtime/invalid-referred-global-symbol</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/invalid-referred-global-rename.html"><strong aria-hidden="true">7.1.6.9.</strong> runtime/invalid-referred-global-rename</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/unsupported-behavior.html"><strong aria-hidden="true">7.1.6.10.</strong> runtime/unsupported-behavior</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/static-feature-disabled.html"><strong aria-hidden="true">7.1.6.11.</strong> runtime/static-feature-disabled</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/uncaught-exception.html"><strong aria-hidden="true">7.1.6.12.</strong> runtime/uncaught-exception</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/runtime/internal-failure.html"><strong aria-hidden="true">7.1.6.13.</strong> runtime/internal-failure</a></span></li></ol><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/system/index.html"><strong aria-hidden="true">7.1.7.</strong> System</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/system/clang-executable-not-found.html"><strong aria-hidden="true">7.1.7.1.</strong> system/clang-executable-not-found</a></span></li><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/system/failure.html"><strong aria-hidden="true">7.1.7.2.</strong> system/failure</a></span></li></ol><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/internal/index.html"><strong aria-hidden="true">7.1.8.</strong> Internal</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="reference/error/internal/failure.html"><strong aria-hidden="true">7.1.8.1.</strong> internal/failure</a></span></li></ol></li></ol></li></ol><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="dev/index.html"><strong aria-hidden="true">8.</strong> Developing jank</a><a class="chapter-fold-toggle"><div>â±</div></a></span><ol class="section"><li class="chapter-item "><span class="chapter-link-wrapper"><a href="dev/ir.html"><strong aria-hidden="true">8.1.</strong> IR reference</a></span></li></ol></li></ol>'; 12 // Set the current, active page, and reveal it if it's hidden 13 let current_page = document.location.href.toString().split('#')[0].split('?')[0]; 14 if (current_page.endsWith('/')) { 15 current_page += 'index.html'; 16 } 17 const links = Array.prototype.slice.call(this.querySelectorAll('a')); 18 const l = links.length; 19 for (let i = 0; i < l; ++i) { 20 const link = links[i]; 21 const href = link.getAttribute('href'); 22 if (href && !href.startsWith('#') && !/^(?:[a-z+]+:)?\/\//.test(href)) { 23 link.href = path_to_root + href; 24 } 25 // The 'index' page is supposed to alias the first chapter in the book. 26 if (link.href === current_page 27 || i === 0 28 && path_to_root === '' 29 && current_page.endsWith('/index.html')) { 30 link.classList.add('active'); 31 let parent = link.parentElement; 32 while (parent) { 33 if (parent.tagName === 'LI' && parent.classList.contains('chapter-item')) { 34 parent.classList.add('expanded'); 35 } 36 parent = parent.parentElement; 37 } 38 } 39 } 40 // Track and set sidebar scroll position 41 this.addEventListener('click', e => { 42 if (e.target.tagName === 'A') { 43 const clientRect = e.target.getBoundingClientRect(); 44 const sidebarRect = this.getBoundingClientRect(); 45 sessionStorage.setItem('sidebar-scroll-offset', clientRect.top - sidebarRect.top); 46 } 47 }, { passive: true }); 48 const sidebarScrollOffset = sessionStorage.getItem('sidebar-scroll-offset'); 49 sessionStorage.removeItem('sidebar-scroll-offset'); 50 if (sidebarScrollOffset !== null) { 51 // preserve sidebar scroll position when navigating via links within sidebar 52 const activeSection = this.querySelector('.active'); 53 if (activeSection) { 54 const clientRect = activeSection.getBoundingClientRect(); 55 const sidebarRect = this.getBoundingClientRect(); 56 const currentOffset = clientRect.top - sidebarRect.top; 57 this.scrollTop += currentOffset - parseFloat(sidebarScrollOffset); 58 } 59 } else { 60 // scroll sidebar to current active section when navigating via 61 // 'next/previous chapter' buttons 62 const activeSection = document.querySelector('#mdbook-sidebar .active'); 63 if (activeSection) { 64 activeSection.scrollIntoView({ block: 'center' }); 65 } 66 } 67 // Toggle buttons 68 const sidebarAnchorToggles = document.querySelectorAll('.chapter-fold-toggle'); 69 function toggleSection(ev) { 70 ev.currentTarget.parentElement.parentElement.classList.toggle('expanded'); 71 }
72 Array.from(sidebarAnchorToggles).forEach(el => { 73 el.addEventListener('click', toggleSection); 74 }); 75 } 76} 77window.customElements.define('mdbook-sidebar-scrollbox', MDBookSidebarScrollbox); 78 79 80// --------------------------------------------------------------------------- 81// Support for dynamically adding headers to the sidebar. 82 83(function() { 84 // This is used to detect which direction the page has scrolled since the 85 // last scroll event. 86 let lastKnownScrollPosition = 0; 87 // This is the threshold in px from the top of the screen where it will 88 // consider a header the "current" header when scrolling down. 89 const defaultDownThreshold = 150; 90 // Same as defaultDownThreshold, except when scrolling up. 91 const defaultUpThreshold = 300; 92 // The threshold is a virtual horizontal line on the screen where it 93 // considers the "current" header to be above the line. The threshold is 94 // modified dynamically to handle headers that are near the bottom of the 95 // screen, and to slightly offset the behavior when scrolling up vs down. 96 let threshold = defaultDownThreshold; 97 // This is used to disable updates while scrolling. This is needed when 98 // clicking the header in the sidebar, which triggers a scroll event. It 99 // is somewhat finicky to detect when the scroll has finished, so this 100 // uses a relatively dumb system of disabling scroll updates for a short 101 // time after the click. 102 let disableScroll = false; 103 // Array of header elements on the page. 104 let headers; 105 // Array of li elements that are initially collapsed headers in the sidebar. 106 // I'm not sure why eslint seems to have a false positive here. 107 // eslint-disable-next-line prefer-const 108 let headerToggles = []; 109 // This is a debugging tool for the threshold which you can enable in the console. 110 let thresholdDebug = false; 111 112 // Updates the threshold based on the scroll position. 113 function updateThreshold() { 114 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 115 const windowHeight = window.innerHeight; 116 const documentHeight = document.documentElement.scrollHeight; 117 118 // The number of pixels below the viewport, at most documentHeight. 119 // This is used to push the threshold down to the bottom of the page 120 // as the user scrolls towards the bottom. 121 const pixelsBelow = Math.max(0, documentHeight - (scrollTop + windowHeight)); 122 // The number of pixels above the viewport, at least defaultDownThreshold. 123 // Similar to pixelsBelow, this is used to push the threshold back towards 124 // the top when reaching the top of the page. 125 const pixelsAbove = Math.max(0, defaultDownThreshold - scrollTop); 126 // How much the threshold should be offset once it gets close to the 127 // bottom of the page. 128 const bottomAdd = Math.max(0, windowHeight - pixelsBelow - defaultDownThreshold); 129 let adjustedBottomAdd = bottomAdd; 130 131 // Adjusts bottomAdd for a small document. The calculation above 132 // assumes the document is at least twice the windowheight in size. If 133 // it is less than that, then bottomAdd needs to be shrunk 134 // proportional to the difference in size. 135 if (documentHeight < windowHeight * 2) { 136 const maxPixelsBelow = documentHeight - windowHeight; 137 const t = 1 - pixelsBelow / Math.max(1, maxPixelsBelow); 138 const clamp = Math.max(0, Math.min(1, t)); 139 adjustedBottomAdd *= clamp; 140 } 141 142 let scrollingDown = true; 143 if (scrollTop < lastKnownScrollPosition) { 144 scrollingDown = false; 145 } 146 147 if (scrollingDown) { 148 // When scrolling down, move the threshold up towards the default 149 // downwards threshold position. If near the bottom of the page, 150 // adjustedBottomAdd will offset the threshold towards the bottom 151 // of the page. 152 const amountScrolledDown = scrollTop - lastKnownScrollPosition; 153 const adjustedDefault = defaultDownThreshold + adjustedBottomAdd; 154 threshold = Math.max(adjustedDefault, threshold - amountScrolledDown); 155 } else { 156 // When scrolling up, move the threshold down towards the default 157 // upwards threshold position. If near the bottom of the page, 158 // quickly transition the threshold back up where it normally 159 // belongs. 160 const amountScrolledUp = lastKnownScrollPosition - scrollTop; 161 const adjustedDefault = defaultUpThreshold - pixelsAbove 162 + Math.max(0, adjustedBottomAdd - defaultDownThreshold); 163 threshold = Math.min(adjustedDefault, threshold + amountScrolledUp); 164 } 165 166 if (documentHeight <= windowHeight) { 167 threshold = 0; 168 } 169 170 if (thresholdDebug) { 171 const id = 'mdbook-threshold-debug-data'; 172 let data = document.getElementById(id); 173 if (data === null) { 174 data = document.createElement('div'); 175 data.id = id; 176 data.style.cssText = `
177 position: fixed; 178 top: 50px; 179 right: 10px; 180 background-color: 0xeeeeee; 181 z-index: 9999; 182 pointer-events: none; 183 `; 184 document.body.appendChild(data); 185 } 186 data.innerHTML = ` 187 <table> 188 <tr><td>documentHeight</td><td>${documentHeight.toFixed(1)}</td></tr> 189 <tr><td>windowHeight</td><td>${windowHeight.toFixed(1)}</td></tr> 190 <tr><td>scrollTop</td><td>${scrollTop.toFixed(1)}</td></tr> 191 <tr><td>pixelsAbove</td><td>${pixelsAbove.toFixed(1)}</td></tr> 192 <tr><td>pixelsBelow</td><td>${pixelsBelow.toFixed(1)}</td></tr> 193 <tr><td>bottomAdd</td><td>${bottomAdd.toFixed(1)}</td></tr> 194 <tr><td>adjustedBottomAdd</td><td>${adjustedBottomAdd.toFixed(1)}</td></tr> 195 <tr><td>scrollingDown</td><td>${scrollingDown}</td></tr> 196 <tr><td>threshold</td><td>${threshold.toFixed(1)}</td></tr> 197 </table> 198 `; 199 drawDebugLine(); 200 } 201 202 lastKnownScrollPosition = scrollTop; 203 } 204 205 function drawDebugLine() { 206 if (!document.body) { 207 return; 208 } 209 const id = 'mdbook-threshold-debug-line'; 210 const existingLine = document.getElementById(id); 211 if (existingLine) { 212 existingLine.remove(); 213 } 214 const line = document.createElement('div'); 215 line.id = id; 216 line.style.cssText = ` 217 position: fixed; 218 top: ${threshold}px; 219 left: 0; 220 width: 100vw; 221 height: 2px; 222 background-color: red; 223 z-index: 9999; 224 pointer-events: none; 225 `; 226 document.body.appendChild(line); 227 } 228 229 function mdbookEnableThresholdDebug() { 230 thresholdDebug = true; 231 updateThreshold(); 232 drawDebugLine(); 233 } 234 235 window.mdbookEnableThresholdDebug = mdbookEnableThresholdDebug; 236 237 // Updates which headers in the sidebar should be expanded. If the current 238 // header is inside a collapsed group, then it, and all its parents should 239 // be expanded. 240 function updateHeaderExpanded(currentA) { 241 // Add expanded to all header-item li ancestors. 242 let current = currentA.parentElement; 243 while (current) { 244 if (current.tagName === 'LI' && current.classList.contains('header-item')) { 245 current.classList.add('expanded'); 246 } 247 current = current.parentElement; 248 } 249 } 250 251 // Updates which header is marked as the "current" header in the sidebar. 252 // This is done with a virtual Y threshold, where headers at or below 253 // that line will be considered the current one. 254 function updateCurrentHeader() { 255 if (!headers || !headers.length) { 256 return; 257 } 258 259 // Reset the classes, which will be rebuilt below. 260 const els = document.getElementsByClassName('current-header'); 261 for (const el of els) { 262 el.classList.remove('current-header'); 263 } 264 for (const toggle of headerToggles) { 265 toggle.classList.remove('expanded'); 266 } 267 268 // Find the last header that is above the threshold. 269 let lastHeader = null; 270 for (const header of headers) { 271 const rect = header.getBoundingClientRect(); 272 if (rect.top <= threshold) { 273 lastHeader = header; 274 } else { 275 break; 276 } 277 } 278 if (lastHeader === null) { 279 lastHeader = headers[0]; 280 const rect = lastHeader.getBoundingClientRect(); 281 const windowHeight = window.innerHeight; 282 if (rect.top >= windowHeight) { 283 return; 284 } 285 } 286 287 // Get the anchor in the summary. 288 const href = '#' + lastHeader.id; 289 const a = [...document.querySelectorAll('.header-in-summary')] 290 .find(element => element.getAttribute('href') === href); 291 if (!a) { 292 return; 293 } 294 295 a.classList.add('current-header'); 296 297 updateHeaderExpanded(a); 298 } 299 300 // Updates which header is "current" based on the threshold line. 301 function reloadCurrentHeader() { 302 if (disableScroll) { 303 return; 304 } 305 updateThreshold(); 306 updateCurrentHeader(); 307 } 308 309 310 // When clicking on a header in the sidebar, this adjusts the threshold so 311 // that it is located next to the header. This is so that header becomes 312 // "current". 313 function headerThresholdClick(event) { 314 // See disableScroll description why this is done. 315 disableScroll = true; 316 setTimeout(() => { 317 disableScroll = false;
318 }, 100); 319 // requestAnimationFrame is used to delay the update of the "current" 320 // header until after the scroll is done, and the header is in the new 321 // position. 322 requestAnimationFrame(() => { 323 requestAnimationFrame(() => { 324 // Closest is needed because if it has child elements like <code>. 325 const a = event.target.closest('a'); 326 const href = a.getAttribute('href'); 327 const targetId = href.substring(1); 328 const targetElement = document.getElementById(targetId); 329 if (targetElement) { 330 threshold = targetElement.getBoundingClientRect().bottom; 331 updateCurrentHeader(); 332 } 333 }); 334 }); 335 } 336 337 // Takes the nodes from the given head and copies them over to the 338 // destination, along with some filtering. 339 function filterHeader(source, dest) { 340 const clone = source.cloneNode(true); 341 clone.querySelectorAll('mark').forEach(mark => { 342 mark.replaceWith(...mark.childNodes); 343 }); 344 dest.append(...clone.childNodes); 345 } 346 347 // Scans page for headers and adds them to the sidebar. 348 document.addEventListener('DOMContentLoaded', function() { 349 const activeSection = document.querySelector('#mdbook-sidebar .active'); 350 if (activeSection === null) { 351 return; 352 } 353 354 const main = document.getElementsByTagName('main')[0]; 355 headers = Array.from(main.querySelectorAll('h2, h3, h4, h5, h6')) 356 .filter(h => h.id !== '' && h.children.length && h.children[0].tagName === 'A'); 357 358 if (headers.length === 0) { 359 return; 360 } 361 362 // Build a tree of headers in the sidebar. 363 364 const stack = []; 365 366 const firstLevel = parseInt(headers[0].tagName.charAt(1)); 367 for (let i = 1; i < firstLevel; i++) { 368 const ol = document.createElement('ol'); 369 ol.classList.add('section'); 370 if (stack.length > 0) { 371 stack[stack.length - 1].ol.appendChild(ol); 372 } 373 stack.push({level: i + 1, ol: ol}); 374 } 375 376 // The level where it will start folding deeply nested headers. 377 const foldLevel = 3; 378 379 for (let i = 0; i < headers.length; i++) { 380 const header = headers[i]; 381 const level = parseInt(header.tagName.charAt(1)); 382 383 const currentLevel = stack[stack.length - 1].level; 384 if (level > currentLevel) { 385 // Begin nesting to this level. 386 for (let nextLevel = currentLevel + 1; nextLevel <= level; nextLevel++) { 387 const ol = document.createElement('ol'); 388 ol.classList.add('section'); 389 const last = stack[stack.length - 1]; 390 const lastChild = last.ol.lastChild; 391 // Handle the case where jumping more than one nesting 392 // level, which doesn't have a list item to place this new 393 // list inside of. 394 if (lastChild) { 395 lastChild.appendChild(ol); 396 } else { 397 last.ol.appendChild(ol); 398 } 399 stack.push({level: nextLevel, ol: ol}); 400 } 401 } else if (level < currentLevel) { 402 while (stack.length > 1 && stack[stack.length - 1].level > level) { 403 stack.pop(); 404 } 405 } 406 407 const li = document.createElement('li'); 408 li.classList.add('header-item'); 409 li.classList.add('expanded'); 410 if (level < foldLevel) { 411 li.classList.add('expanded'); 412 } 413 const span = document.createElement('span'); 414 span.classList.add('chapter-link-wrapper'); 415 const a = document.createElement('a'); 416 span.appendChild(a); 417 a.href = '#' + header.id; 418 a.classList.add('header-in-summary'); 419 filterHeader(header.children[0], a); 420 a.addEventListener('click', headerThresholdClick); 421 const nextHeader = headers[i + 1]; 422 if (nextHeader !== undefined) { 423 const nextLevel = parseInt(nextHeader.tagName.charAt(1)); 424 if (nextLevel > level && level >= foldLevel) { 425 const toggle = document.createElement('a'); 426 toggle.classList.add('chapter-fold-toggle'); 427 toggle.classList.add('header-toggle'); 428 toggle.addEventListener('click', () => { 429 li.classList.toggle('expanded'); 430 }); 431 const toggleDiv = document.createElement('div'); 432 toggleDiv.textContent = 'â±'; 433 toggle.appendChild(toggleDiv); 434 span.appendChild(toggle); 435 headerToggles.push(li); 436 } 437 } 438 li.appendChild(span); 439 440 const currentParent = stack[stack.length - 1]; 441 currentParent.ol.appendChild(li); 442 } 443 444 const onThisPage = document.createElement('div'); 445 onThisPage.classList.add('on-this-page'); 446 onThisPage.append(stack[0].ol); 447 const activeItemSpan = activeSection.parentElement; 448 activeItemSpan.after(onThisPage); 449 }); 450 451 document.addEventListener('DOMContentLoaded', reloadCurrentHeader); 452 document.addEventListener('scroll', reloadCurrentHeader, { passive: true }); 453})(); 454
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.