forked from microsoft/devicescript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbytecode.html
More file actions
32 lines (32 loc) · 137 KB
/
bytecode.html
File metadata and controls
32 lines (32 loc) · 137 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-language/bytecode">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Bytecode | DeviceScript</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://microsoft.github.io/devicescript/language/bytecode"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Bytecode | DeviceScript"><meta data-rh="true" name="description" content="{@import ../../../bytecode/bytecode.md}"><meta data-rh="true" property="og:description" content="{@import ../../../bytecode/bytecode.md}"><link data-rh="true" rel="icon" href="/devicescript/img/favicon.svg"><link data-rh="true" rel="canonical" href="https://microsoft.github.io/devicescript/language/bytecode"><link data-rh="true" rel="alternate" href="https://microsoft.github.io/devicescript/language/bytecode" hreflang="en"><link data-rh="true" rel="alternate" href="https://microsoft.github.io/devicescript/language/bytecode" hreflang="x-default"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/devicescript/assets/css/styles.83f5432f.css">
<link rel="preload" href="/devicescript/assets/js/runtime~main.5c9665ef.js" as="script">
<link rel="preload" href="/devicescript/assets/js/main.2ac68606.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_oPtH" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_zJRd" style="background-color:#fafbfc;color:#091E42" role="banner"><div class="announcementBarPlaceholder_NpUd"></div><div class="content_bSb_ announcementBarContent_t7IR">Experimental Project from Microsoft Research - Join the <a href="https://github.com/microsoft/devicescript/discussions">discussions</a> to provide feedback.</div><button type="button" aria-label="Close" class="clean-btn close closeButton_J5rP announcementBarClose_Jjdj"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top navbarHideable_hhpl"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/devicescript/"><div class="navbar__logo"><img src="/devicescript/img/logo.svg" alt="DeviceScript language" class="themedImage_BQGR themedImage--light_HAxW"><img src="/devicescript/img/logo_dark.svg" alt="DeviceScript language" class="themedImage_BQGR themedImage--dark_bGx0"></div><b class="navbar__title text--truncate">DeviceScript</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/devicescript/getting-started">Download</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/devicescript/intro">Docs</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/devicescript/devices">Devices</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/devicescript/api/cli">API</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/microsoft/devicescript" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><div class="toggle_ki11 colorModeToggle_Hewu"><button class="clean-btn toggleButton_MMFG toggleButtonDisabled_Uw7m" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_lgto"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_U96C"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_WqAV"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_MB5r docsWrapper_ct1J"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_iEvu" type="button"></button><div class="docPage_KLoz"><aside class="theme-doc-sidebar-container docSidebarContainer_y0RQ"><div class="sidebarViewport_EJ1r"><div class="sidebar_CUen sidebarWithHideableNavbar_w4KB"><a tabindex="-1" class="sidebarLogo_CYvI" href="/devicescript/"><img src="/devicescript/img/logo.svg" alt="DeviceScript language" class="themedImage_BQGR themedImage--light_HAxW"><img src="/devicescript/img/logo_dark.svg" alt="DeviceScript language" class="themedImage_BQGR themedImage--dark_bGx0"><b>DeviceScript</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_jmj1 menuWithAnnouncementBar_YufC"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/devicescript/intro">DeviceScript</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/devicescript/getting-started">Getting Started</a><button aria-label="Toggle the collapsible sidebar category 'Getting Started'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/devicescript/developer">Developer</a><button aria-label="Toggle the collapsible sidebar category 'Developer'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/devicescript/samples">Samples</a><button aria-label="Toggle the collapsible sidebar category 'Samples'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/devicescript/language">Language Reference</a><button aria-label="Toggle the collapsible sidebar category 'Language Reference'" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/devicescript/language/async">Async/await and promises</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/devicescript/language/tostring">toString() method</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/devicescript/language/strings">Strings and Unicode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/devicescript/language/special">Special objects</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/devicescript/language/tree-shaking">Tree-shaking</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/devicescript/language/runtime">Runtime implementation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/devicescript/language/bytecode">Bytecode</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/devicescript/language/devicescript-vs-javascript">Other differences with JavaScript</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/devicescript/language/hex">Hex template literal</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/devicescript/devices">Devices</a><button aria-label="Toggle the collapsible sidebar category 'Devices'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/devicescript/api/cli">API</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/devicescript/changelog">Release Notes</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/devicescript/contributing">Contributing</a></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_oTwn"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_pMEX"><g fill="#7a7a7a"><path d="M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"></path><path d="M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"></path></g></svg></button></div></div></aside><main class="docMainContainer_sTIZ"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_Qr34"><div class="docItemContainer_tjFy"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_T5ub" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/devicescript/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_sfvy"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/devicescript/language"><span itemprop="name">Language Reference</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Bytecode</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_wXna theme-doc-toc-mobile tocMobile_Ojys"><button type="button" class="clean-btn tocCollapsibleButton_iI2p">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Bytecode</h1></header><h1>DeviceScript bytecode spec</h1><p>This file documents bytecode format for DeviceScript.
A <a href="https://github.com/microsoft/devicescript/blob/main/runtime/devicescript/devs_bytecode.h" target="_blank" rel="noopener noreferrer">C header file</a>
and a <a href="https://github.com/microsoft/devicescript/blob/main/compiler/src/bytecode.ts" target="_blank" rel="noopener noreferrer">TypeScript file</a> are generated from it.
Additional structures are defined in <a href="https://github.com/microsoft/devicescript/blob/main/runtime/devicescript/devs_format.h" target="_blank" rel="noopener noreferrer">devs_format.h</a>.</p><p>A DeviceScript bytecode file contains magic and version numbers followed by a number of binary sections
defining functions, various literals (floats, ASCII strings, Unicode strings, buffers),
Jacdac service specifications, and runtime configuration (<code>configureHardware()</code> and built-in servers).</p><p>Functions are sequences of opcodes defined below.
Opcodes are divided into expressions (with return type) which do not modify state,
and statements (no return type; <code>ret_val()</code> expression is used to retrieve the logical
result of a last statement).
Many opcodes (both expressions and statements) can also throw an exception.</p><p>For a more highlevel description of runtime and bytecode, see <a href="/devicescript/language/runtime">Runtime implementation page</a>.</p><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="format-constants">Format Constants<a href="#format-constants" class="hash-link" aria-label="Direct link to Format Constants" title="Direct link to Format Constants"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">img_version_major = 2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">img_version_minor = 16</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">img_version_patch = 4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">img_version = $version</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">magic0 = 0x53766544 // "DevS"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">magic1 = 0xf1296e0a</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">num_img_sections = 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fix_header_size = 32</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">section_header_size = 8</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">function_header_size = 16</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ascii_header_size = 2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">utf8_header_size = 4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">utf8_table_shift = 4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">binary_size_align = 32</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">max_stack_depth = 16</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">max_call_depth = 100</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">direct_const_op = 0x80</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">direct_const_offset = 16</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">first_multibyte_int = 0xf8</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">first_non_opcode = 0x10000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">first_builtin_function = 50000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">max_args_short_call = 8</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">service_spec_header_size = 16</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">service_spec_packet_size = 8</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">service_spec_field_size = 4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">role_bits = 15</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="ops">Ops<a href="#ops" class="hash-link" aria-label="Direct link to Ops" title="Direct link to Ops"></a></h2><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="control-flow">Control flow<a href="#control-flow" class="hash-link" aria-label="Direct link to Control flow" title="Direct link to Control flow"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">call0(func) = 2 // CALL func()</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">call1(func, v0) = 3 // CALL func(v0)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">call2(func, v0, v1) = 4 // CALL func(v0, v1)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">call3(func, v0, v1, v2) = 5 // CALL func(v0, v1, v2)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">call4(func, v0, v1, v2, v3) = 6 // CALL func(v0, v1, v2, v3)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">call5(func, v0, v1, v2, v3, v4) = 7 // CALL func(v0, v1, v2, v3, v4)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">call6(func, v0, v1, v2, v3, v4, v5) = 8 // CALL func(v0, v1, v2, v3, v4, v5)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">call7(func, v0, v1, v2, v3, v4, v5, v6) = 9 // CALL func(v0, v1, v2, v3, v4, v5, v6)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">call8(func, v0, v1, v2, v3, v4, v5, v6, v7) = 10 // CALL func(v0, v1, v2, v3, v4, v5, v6, v7)</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Call a function with given number of parameters.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">call_array(func, args) = 79 // CALL func(...args)</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Passes arguments to a function as an array. The array can be at most <code>max_stack_depth - 1</code> elements long.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">final return(value) = 12</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">final jmp(*jmpoffset) = 13 // JMP jmpoffset</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">jmp_z(*jmpoffset, x) = 14 // JMP jmpoffset IF NOT x</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Jump if condition is false.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">jmp_ret_val_z(*jmpoffset) = 78 // JMP jmpoffset IF ret_val is nullish</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Used in compilation of <code>?.</code>.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">try(*jmpoffset) = 80 // TRY jmpoffset</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Start try-catch block - catch/finally handler is at the jmpoffset.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">final end_try(*jmpoffset) = 81</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Try block has to end with this. jmpoffset is for continuation code.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">catch() = 82</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Has to be the first opcode in the catch handler. Causes error elsewhere.
If value throw is JMP rethrows immediately.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">finally() = 83</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Has to be the first opcode in the finally handler.
Finally block should be followed by storing exception value in a local
and finish with <code>re_throw</code> of the exception.
<code>retval</code> set to <code>null</code> when block executed not due to an exception.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">final throw(value) = 84</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Throw an exception.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">final re_throw(value) = 85</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Throw an exception without setting the <code>__stack__</code> field.
Does nothing if <code>value</code> is <code>null</code>.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">final throw_jmp(*jmpoffset, level) = 86</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Jump to given offset popping <code>level</code> try blocks, activating the finally blocks on the way.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">debugger() = 87</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Trigger breakpoint when debugger connected. No-op otherwise.</p><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="variables">Variables<a href="#variables" class="hash-link" aria-label="Direct link to Variables" title="Direct link to Variables"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">store_local(*local_idx, value) = 17 // local_idx := value</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">store_global(*global_idx, value) = 18 // global_idx := value</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">store_buffer(buffer, numfmt, offset, value) = 19</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">load_local(*local_idx): any = 21</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">load_global(*global_idx): any = 22</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">store_closure(*local_clo_idx, levels, value) = 73</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">load_closure(*local_clo_idx, levels): any = 74</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">make_closure(*func_idx): function = 75 // CLOSURE(func_idx)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">store_ret_val(x) = 93 // ret_val := x</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="field-access">Field access<a href="#field-access" class="hash-link" aria-label="Direct link to Field access" title="Direct link to Field access"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">index(object, idx): any = 24 // object[idx]</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Read named field or sequence member (depending on type of idx).</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">index_set(object, index, value) = 25 // object[index] := value</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Write named field or sequence member (depending on type of idx).</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">index_delete(object, index) = 11 // delete object[index]</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Remove a named field from an object.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">builtin_field(*builtin_idx, obj): any = 26 // {swap}obj.builtin_idx</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Shorthand to <code>index(obj, static_builtin_string(builtin_idx))</code></p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">ascii_field(*ascii_idx, obj): any = 27 // {swap}obj.ascii_idx</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Shorthand to <code>index(obj, static_ascii_string(ascii_idx))</code></p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">utf8_field(*utf8_idx, obj): any = 28 // {swap}obj.utf8_idx</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Shorthand to <code>index(obj, static_utf8_string(utf8_idx))</code></p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun math_field(*builtin_idx): any = 29 // Math.builtin_idx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun ds_field(*builtin_idx): any = 30 // ds.builtin_idx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun object_field(*builtin_idx): any = 16 // Object.builtin_idx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun new(func): function = 88 // new func</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun bind(func, obj): function = 15 // func.bind(obj)</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="objects">Objects<a href="#objects" class="hash-link" aria-label="Direct link to Objects" title="Direct link to Objects"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">alloc_map() = 31</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">alloc_array(initial_size) = 32</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">alloc_buffer(size) = 33</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="statics">Statics<a href="#statics" class="hash-link" aria-label="Direct link to Statics" title="Direct link to Statics"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun static_spec_proto(*spec_idx): any = 34 // spec_idx.prototype</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun static_buffer(*buffer_idx): buffer = 35</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun static_builtin_string(*builtin_idx): string = 36</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun static_ascii_string(*ascii_idx): string = 37</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun static_utf8_string(*utf8_idx): string = 38</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun static_function(*func_idx): function = 39</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun static_spec(*spec_idx): any = 94</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun literal(*value): number = 40</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun literal_f64(*f64_idx): number = 41</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun builtin_object(*builtin_object): number = 1</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="misc">Misc<a href="#misc" class="hash-link" aria-label="Direct link to Misc" title="Direct link to Misc"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">removed_42() = 42</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">load_buffer(buffer, numfmt, offset): number = 43</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ret_val(): any = 44</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Return value of query register, call, etc.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun typeof(object): number = 45</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Returns <code>Object_Type</code> enum.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun typeof_str(object): number = 76</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Returns JS-compatible string.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun undefined(): null = 46 // undefined</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Returns <code>undefined</code> value.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun null(): null = 90 // null</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Returns <code>null</code> value.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun is_undefined(x): bool = 47</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Check if object is exactly <code>undefined</code>.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun instance_of(obj, cls): bool = 89</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Check if <code>obj</code> has <code>cls.prototype</code> in its prototype chain.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun is_nullish(x): bool = 72</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Check if value is precisely <code>null</code> or <code>undefined</code>.</p><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="booleans">Booleans<a href="#booleans" class="hash-link" aria-label="Direct link to Booleans" title="Direct link to Booleans"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun true(): bool = 48</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun false(): bool = 49</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun to_bool(x): bool = 50 // !!x</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="math-operations">Math operations<a href="#math-operations" class="hash-link" aria-label="Direct link to Math operations" title="Direct link to Math operations"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun nan(): number = 51</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun inf(): number = 20</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun abs(x): number = 52</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun bit_not(x): number = 53 // ~x</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun is_nan(x): bool = 54</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun neg(x): number = 55 // -x</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun uplus(x): number = 23 // +x</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun not(x): bool = 56 // !x</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun to_int(x): number = 57</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Same as <code>x | 0</code>.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun add(x, y): number = 58 // x + y</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Note that this also works on strings, etc.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fun sub(x, y): number = 59 // x - y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun mul(x, y): number = 60 // x * y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun div(x, y): number = 61 // x / y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun bit_and(x, y): number = 62 // x & y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun bit_or(x, y): number = 63 // x | y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun bit_xor(x, y): number = 64 // x ^ y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun shift_left(x, y): number = 65 // x << y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun shift_right(x, y): number = 66 // x >> y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun shift_right_unsigned(x, y): number = 67 // x >>> y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun eq(x, y): bool = 68 // x === y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun le(x, y): bool = 69 // x <= y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun lt(x, y): bool = 70 // x < y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun ne(x, y): bool = 71 // x !== y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun approx_eq(x, y): bool = 91 // x == y</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fun approx_ne(x, y): bool = 92 // x != y</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="to-be-removed-soon">To be removed (soon)<a href="#to-be-removed-soon" class="hash-link" aria-label="Direct link to To be removed (soon)" title="Direct link to To be removed (soon)"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">removed_77() = 77</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-stridx">Enum: StrIdx<a href="#enum-stridx" class="hash-link" aria-label="Direct link to Enum: StrIdx" title="Direct link to Enum: StrIdx"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">buffer = 0</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">builtin = 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ascii = 2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">utf8 = 3</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_shift = 14</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-opcall">Enum: OpCall<a href="#enum-opcall" class="hash-link" aria-label="Direct link to Enum: OpCall" title="Direct link to Enum: OpCall"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">sync = 0</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Regular call. Unused.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">bg = 1</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Always start new fiber.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">bg_max1 = 2</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Start new fiber unless one is already running.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">bg_max1_pend1 = 3</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>If fiber is already running, set a flag for it to be restarted when it finishes.
Otherwise, start new fiber.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">bg_max1_replace = 4</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Start new fiber. If it's already running, replace it.</p><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-bytecodeflag">Enum: BytecodeFlag<a href="#enum-bytecodeflag" class="hash-link" aria-label="Direct link to Enum: BytecodeFlag" title="Direct link to Enum: BytecodeFlag"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">num_args_mask = 0xf</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">is_stmt = 0x10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">takes_number = 0x20</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">is_stateless = 0x40 // fun modifier - only valid when !is_stmt</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">is_final_stmt = 0x40 // final modifier - only valid when is_stmt</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-functionflag">Enum: FunctionFlag<a href="#enum-functionflag" class="hash-link" aria-label="Direct link to Enum: FunctionFlag" title="Direct link to Enum: FunctionFlag"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">needs_this = 0x01</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">is_ctor = 0x02</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">has_rest_arg = 0x04</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-numfmt">Enum: NumFmt<a href="#enum-numfmt" class="hash-link" aria-label="Direct link to Enum: NumFmt" title="Direct link to Enum: NumFmt"></a></h2><p>Size in bits is: <code>8 << (fmt & 0b11)</code>.
Format is <code>["u", "i", "f", "reserved"](fmt >> 2)</code></p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">U8 = 0b0000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">U16 = 0b0001</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">U32 = 0b0010</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">U64 = 0b0011</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">I8 = 0b0100</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">I16 = 0b0101</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">I32 = 0b0110</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">I64 = 0b0111</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">F8 = 0b1000 // not supported</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">F16 = 0b1001 // not supported</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">F32 = 0b1010</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">F64 = 0b1011</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Special = 0b1100</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-numfmt_special">Enum: NumFmt_Special<a href="#enum-numfmt_special" class="hash-link" aria-label="Direct link to Enum: NumFmt_Special" title="Direct link to Enum: NumFmt_Special"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">empty = 0</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">bytes = 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">string = 2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">string0 = 3</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">bool = 4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pipe = 5</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pipe_port = 6</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-packetspec_code">Enum: PacketSpec_Code<a href="#enum-packetspec_code" class="hash-link" aria-label="Direct link to Enum: PacketSpec_Code" title="Direct link to Enum: PacketSpec_Code"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">register = 0x1000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">event = 0x8000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">command = 0x0000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">report = 0x2000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">MASK = 0xf000</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-servicespec_flag">Enum: ServiceSpec_Flag<a href="#enum-servicespec_flag" class="hash-link" aria-label="Direct link to Enum: ServiceSpec_Flag" title="Direct link to Enum: ServiceSpec_Flag"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">derive_mask = 0x000f</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">derive_base = 0x0000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">derive_sensor = 0x0001</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">derive_last = 0x0001</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-packetspec_flag">Enum: PacketSpec_Flag<a href="#enum-packetspec_flag" class="hash-link" aria-label="Direct link to Enum: PacketSpec_Flag" title="Direct link to Enum: PacketSpec_Flag"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">multi_field = 0x01</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-fieldspec_flag">Enum: FieldSpec_Flag<a href="#enum-fieldspec_flag" class="hash-link" aria-label="Direct link to Enum: FieldSpec_Flag" title="Direct link to Enum: FieldSpec_Flag"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">is_bytes = 0x01</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">starts_repeats = 0x02</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-object_type">Enum: Object_Type<a href="#enum-object_type" class="hash-link" aria-label="Direct link to Enum: Object_Type" title="Direct link to Enum: Object_Type"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">undefined = 0</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Only the <code>undefined</code> value.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">number = 1</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Integers, doubles, infinity, nan.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">map = 2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">array = 3</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">buffer = 4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">role = 5</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">bool = 6</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Only <code>true</code> and <code>false</code> values.</p><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">fiber = 7</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">function = 8</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">string = 9</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">packet = 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">exotic = 11</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">null = 12</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">image = 13</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="object_types-only-used-in-static-type-info">Object_Types only used in static type info<a href="#object_types-only-used-in-static-type-info" class="hash-link" aria-label="Direct link to Object_Types only used in static type info" title="Direct link to Object_Types only used in static type info"></a></h3><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">any = 14</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">void = 15</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-builtin_object">Enum: BuiltIn_Object<a href="#enum-builtin_object" class="hash-link" aria-label="Direct link to Enum: BuiltIn_Object" title="Direct link to Enum: BuiltIn_Object"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">Math = 0</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Object = 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Object_prototype = 2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Array = 3</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Array_prototype = 4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Buffer = 5</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Buffer_prototype = 6</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">String = 7</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">String_prototype = 8</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Number = 9</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Number_prototype = 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsFiber = 11</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsFiber_prototype = 12</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsRole = 13</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsRole_prototype = 14</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Function = 15</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Function_prototype = 16</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Boolean = 17</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Boolean_prototype = 18</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsPacket = 19</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsPacket_prototype = 20</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DeviceScript = 21</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsPacketInfo_prototype = 22</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsRegister_prototype = 23</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsCommand_prototype = 24</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsEvent_prototype = 25</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsReport_prototype = 26</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Error = 27</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Error_prototype = 28</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">TypeError = 29</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">TypeError_prototype = 30</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RangeError = 31</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RangeError_prototype = 32</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SyntaxError = 33</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SyntaxError_prototype = 34</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">JSON = 35</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsServiceSpec = 36</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsServiceSpec_prototype = 37</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsPacketSpec = 38</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DsPacketSpec_prototype = 39</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Image = 40</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Image_prototype = 41</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">GPIO = 42</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">GPIO_prototype = 43</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_pMLv" id="enum-builtin_string">Enum: BuiltIn_String<a href="#enum-builtin_string" class="hash-link" aria-label="Direct link to Enum: BuiltIn_String" title="Direct link to Enum: BuiltIn_String"></a></h2><div class="codeBlockContainer_mQmQ theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_D5yF"><pre tabindex="0" class="prism-code language-text codeBlock_RMoD thin-scrollbar"><code class="codeBlockLines_AclH"><span class="token-line" style="color:#393A34"><span class="token plain">_empty = 0</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">MInfinity = 1 // -Infinity</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">DeviceScript = 2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">E = 3</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Infinity = 4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LN10 = 5</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LN2 = 6</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LOG10E = 7</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">LOG2E = 8</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">NaN = 9</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">PI = 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SQRT1_2 = 11</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SQRT2 = 12</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">abs = 13</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">alloc = 14</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">array = 15</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">blitAt = 16</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">boolean = 17</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">buffer = 18</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cbrt = 19</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ceil = 20</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">charCodeAt = 21</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">clamp = 22</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">exp = 23</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">false = 24</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fillAt = 25</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">floor = 26</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">forEach = 27</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">function = 28</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">getAt = 29</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">idiv = 30</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">imul = 31</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isBound = 32</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">join = 33</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">length = 34</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">log = 35</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">log10 = 36</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">log2 = 37</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">map = 38</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">max = 39</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">min = 40</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">next = 41</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">null = 42</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">number = 43</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">onChange = 44</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">onConnected = 45</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">onDisconnected = 46</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">packet = 47</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_panic = 48</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pop = 49</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pow = 50</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">prev = 51</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">prototype = 52</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">push = 53</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">random = 54</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">randomInt = 55</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">read = 56</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">restart = 57</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">round = 58</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">setAt = 59</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">setLength = 60</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">shift = 61</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">signal = 62</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">slice = 63</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">splice = 64</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sqrt = 65</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">string = 66</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">subscribe = 67</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">toString = 68</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">true = 69</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">undefined = 70</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">unshift = 71</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">wait = 72</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">write = 73</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sleep = 74</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">imod = 75</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">format = 76</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">insert = 77</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">start = 78</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cloud = 79</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">main = 80</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">charAt = 81</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">object = 82</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">parseInt = 83</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">parseFloat = 84</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">assign = 85</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">keys = 86</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">values = 87</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">__func__ = 88</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">role = 89</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">deviceIdentifier = 90</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">shortId = 91</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">serviceIndex = 92</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">serviceCommand = 93</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">payload = 94</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">decode = 95</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">encode = 96</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_onPacket = 97</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">code = 98</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">name = 99</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isEvent = 100</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">eventCode = 101</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isRegSet = 102</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isRegGet = 103</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">regCode = 104</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">flags = 105</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isReport = 106</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isCommand = 107</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isArray = 108</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">inline = 109</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">assert = 110</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pushRange = 111</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sendCommand = 112</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">__stack__ = 113</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Error = 114</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">TypeError = 115</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RangeError = 116</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">stack = 117</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">message = 118</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cause = 119</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">__new__ = 120</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">setPrototypeOf = 121</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">getPrototypeOf = 122</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">constructor = 123</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">__proto__ = 124</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_logRepr = 125</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">print = 126</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">everyMs = 127</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">setInterval = 128</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">setTimeout = 129</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">clearInterval = 130</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">clearTimeout = 131</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SyntaxError = 132</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">JSON = 133</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">parse = 134</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">stringify = 135</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_dcfgString = 136</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isSimulator = 137</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_Role = 138 // Role</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Fiber = 139</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">suspend = 140</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">resume = 141</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">terminate = 142</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">self = 143</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">current = 144</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">id = 145</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_commandResponse = 146</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isAction = 147</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">millis = 148</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">from = 149</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">hex = 150</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">utf8 = 151</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">utf_8 = 152 // utf-8</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">suspended = 153</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">reboot = 154</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">server = 155</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">spec = 156</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ServiceSpec = 157</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">classIdentifier = 158</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">lookup = 159</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">PacketSpec = 160</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">parent = 161</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">response = 162</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ServerInterface = 163</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_onServerPacket = 164</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_serverSend = 165</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">notImplemented = 166</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">delay = 167</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fromCharCode = 168</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_allocRole = 169</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">spiConfigure = 170</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">spiXfer = 171</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_socketOpen = 172</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_socketClose = 173</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_socketWrite = 174</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_socketOnEvent = 175</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">open = 176</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">close = 177</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">error_ = 178 // error</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">data = 179</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">toUpperCase = 180</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">toLowerCase = 181</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">indexOf = 182</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">byteLength = 183</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Image = 184</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">width = 185</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">height = 186</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">bpp = 187</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">get = 188</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">clone = 189</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">set = 190</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fill = 191</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">flipX = 192</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">flipY = 193</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">transposed = 194</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">drawImage = 195</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">drawTransparentImage = 196</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">overlapsWith = 197</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fillRect = 198</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">drawLine = 199</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">equals = 200</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">isReadOnly = 201</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fillCircle = 202</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">blitRow = 203</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">blit = 204</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_i2cTransaction = 205</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">_twinMessage = 206</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">spiSendImage = 207</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">gpio = 208</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">label = 209</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">mode = 210</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">capabilities = 211</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">value = 212</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">setMode = 213</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fillRandom = 214</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">encrypt = 215</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">decrypt = 216</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">digest = 217</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ledStripSend = 218</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">rotate = 219</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">register = 220</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">event = 221</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">action = 222</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">report = 223</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">type = 224</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">byCode = 225</span><br></span></code></pre><div class="buttonGroup_aaMX"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_z5j7" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_FoOz"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_L0B6"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/devicescript/language/runtime"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Runtime implementation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/devicescript/language/devicescript-vs-javascript"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Other differences with JavaScript</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_XG6w thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#format-constants" class="table-of-contents__link toc-highlight">Format Constants</a></li><li><a href="#ops" class="table-of-contents__link toc-highlight">Ops</a><ul><li><a href="#control-flow" class="table-of-contents__link toc-highlight">Control flow</a></li><li><a href="#variables" class="table-of-contents__link toc-highlight">Variables</a></li><li><a href="#field-access" class="table-of-contents__link toc-highlight">Field access</a></li><li><a href="#objects" class="table-of-contents__link toc-highlight">Objects</a></li><li><a href="#statics" class="table-of-contents__link toc-highlight">Statics</a></li><li><a href="#misc" class="table-of-contents__link toc-highlight">Misc</a></li><li><a href="#booleans" class="table-of-contents__link toc-highlight">Booleans</a></li><li><a href="#math-operations" class="table-of-contents__link toc-highlight">Math operations</a></li><li><a href="#to-be-removed-soon" class="table-of-contents__link toc-highlight">To be removed (soon)</a></li></ul></li><li><a href="#enum-stridx" class="table-of-contents__link toc-highlight">Enum: StrIdx</a></li><li><a href="#enum-opcall" class="table-of-contents__link toc-highlight">Enum: OpCall</a></li><li><a href="#enum-bytecodeflag" class="table-of-contents__link toc-highlight">Enum: BytecodeFlag</a></li><li><a href="#enum-functionflag" class="table-of-contents__link toc-highlight">Enum: FunctionFlag</a></li><li><a href="#enum-numfmt" class="table-of-contents__link toc-highlight">Enum: NumFmt</a></li><li><a href="#enum-numfmt_special" class="table-of-contents__link toc-highlight">Enum: NumFmt_Special</a></li><li><a href="#enum-packetspec_code" class="table-of-contents__link toc-highlight">Enum: PacketSpec_Code</a></li><li><a href="#enum-servicespec_flag" class="table-of-contents__link toc-highlight">Enum: ServiceSpec_Flag</a></li><li><a href="#enum-packetspec_flag" class="table-of-contents__link toc-highlight">Enum: PacketSpec_Flag</a></li><li><a href="#enum-fieldspec_flag" class="table-of-contents__link toc-highlight">Enum: FieldSpec_Flag</a></li><li><a href="#enum-object_type" class="table-of-contents__link toc-highlight">Enum: Object_Type</a><ul><li><a href="#object_types-only-used-in-static-type-info" class="table-of-contents__link toc-highlight">Object_Types only used in static type info</a></li></ul></li><li><a href="#enum-builtin_object" class="table-of-contents__link toc-highlight">Enum: BuiltIn_Object</a></li><li><a href="#enum-builtin_string" class="table-of-contents__link toc-highlight">Enum: BuiltIn_String</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/devicescript/intro">Introduction</a></li><li class="footer__item"><a class="footer__link-item" href="/devicescript/developer">Developer</a></li><li class="footer__item"><a class="footer__link-item" href="/devicescript/language">Language Reference</a></li><li class="footer__item"><a class="footer__link-item" href="/devicescript/api/cli">API</a></li></ul></div><div class="col footer__col"><div class="footer__title">Info</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/microsoft/devicescript/" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPrP"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/microsoft/devicescript/discussions" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discussions<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPrP"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://go.microsoft.com/fwlink/?linkid=2259814" target="_blank" rel="noopener noreferrer" class="footer__link-item">Consumer Health Privacy<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPrP"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Legal</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://go.microsoft.com/fwlink/?LinkId=521839" target="_blank" rel="noopener noreferrer" class="footer__link-item">Privacy & Cookies<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPrP"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.microsoft.com/en-us/legal/intellectualproperty/copyright" target="_blank" rel="noopener noreferrer" class="footer__link-item">Terms of Use<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPrP"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general" target="_blank" rel="noopener noreferrer" class="footer__link-item">Trademarks<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPrP"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 Microsoft Corporation.</div></div></div></footer></div>
<script src="/devicescript/assets/js/runtime~main.5c9665ef.js"></script>
<script src="/devicescript/assets/js/main.2ac68606.js"></script>
</body>
</html>