| <!doctype html><html lang="en"> |
| <head> |
| <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> |
| <meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport"> |
| <title>WebAssembly JavaScript Interface</title> |
| <meta content="ED" name="w3c-status"> |
| <meta content="Bikeshed version 3f621ba99, updated Mon Jul 28 15:38:36 2025 -0700" name="generator"> |
| <link href="https://www.w3.org/TR/wasm-js-api-2/" rel="canonical"> |
| <meta content="9d36019973201a19f9c9ebb0f10828b2fe2374aa" name="revision"> |
| <meta content="dark light" name="color-scheme"> |
| <style> |
| emu-const { |
| font-family: serif; |
| } |
| </style> |
| <style>/* Boilerplate: style-autolinks */ |
| .css.css, .property.property, .descriptor.descriptor { |
| color: var(--a-normal-text); |
| font-size: inherit; |
| font-family: inherit; |
| } |
| .css::before, .property::before, .descriptor::before { |
| content: "‘"; |
| } |
| .css::after, .property::after, .descriptor::after { |
| content: "’"; |
| } |
| .property, .descriptor { |
| /* Don't wrap property and descriptor names */ |
| white-space: nowrap; |
| } |
| .type { /* CSS value <type> */ |
| font-style: italic; |
| } |
| pre .property::before, pre .property::after { |
| content: ""; |
| } |
| [data-link-type="property"]::before, |
| [data-link-type="propdesc"]::before, |
| [data-link-type="descriptor"]::before, |
| [data-link-type="value"]::before, |
| [data-link-type="function"]::before, |
| [data-link-type="at-rule"]::before, |
| [data-link-type="selector"]::before, |
| [data-link-type="maybe"]::before { |
| content: "‘"; |
| } |
| [data-link-type="property"]::after, |
| [data-link-type="propdesc"]::after, |
| [data-link-type="descriptor"]::after, |
| [data-link-type="value"]::after, |
| [data-link-type="function"]::after, |
| [data-link-type="at-rule"]::after, |
| [data-link-type="selector"]::after, |
| [data-link-type="maybe"]::after { |
| content: "’"; |
| } |
| |
| [data-link-type].production::before, |
| [data-link-type].production::after, |
| .prod [data-link-type]::before, |
| .prod [data-link-type]::after { |
| content: ""; |
| } |
| |
| [data-link-type=element], |
| [data-link-type=element-attr] { |
| font-family: Menlo, Consolas, "DejaVu Sans Mono", monospace; |
| font-size: .9em; |
| } |
| [data-link-type=element]::before { content: "<" } |
| [data-link-type=element]::after { content: ">" } |
| |
| [data-link-type=biblio] { |
| white-space: pre; |
| } |
| |
| @media (prefers-color-scheme: dark) { |
| :root { |
| --selflink-text: black; |
| --selflink-bg: silver; |
| --selflink-hover-text: white; |
| } |
| } |
| </style> |
| <style>/* Boilerplate: style-colors */ |
| /* Any --*-text not paired with a --*-bg is assumed to have a transparent bg */ |
| :root { |
| color-scheme: light dark; |
| |
| --text: black; |
| --bg: white; |
| |
| --unofficial-watermark: url(https://www.w3.org/StyleSheets/TR/2016/logos/UD-watermark); |
| |
| --logo-bg: #1a5e9a; |
| --logo-active-bg: #c00; |
| --logo-text: white; |
| |
| --tocnav-normal-text: #707070; |
| --tocnav-normal-bg: var(--bg); |
| --tocnav-hover-text: var(--tocnav-normal-text); |
| --tocnav-hover-bg: #f8f8f8; |
| --tocnav-active-text: #c00; |
| --tocnav-active-bg: var(--tocnav-normal-bg); |
| |
| --tocsidebar-text: var(--text); |
| --tocsidebar-bg: #f7f8f9; |
| --tocsidebar-shadow: rgba(0,0,0,.1); |
| --tocsidebar-heading-text: hsla(203,20%,40%,.7); |
| |
| --toclink-text: var(--text); |
| --toclink-underline: #3980b5; |
| --toclink-visited-text: var(--toclink-text); |
| --toclink-visited-underline: #054572; |
| |
| --heading-text: #005a9c; |
| |
| --hr-text: var(--text); |
| |
| --algo-border: #def; |
| |
| --del-text: red; |
| --del-bg: transparent; |
| --ins-text: #080; |
| --ins-bg: transparent; |
| |
| --a-normal-text: #034575; |
| --a-normal-underline: #bbb; |
| --a-visited-text: var(--a-normal-text); |
| --a-visited-underline: #707070; |
| --a-hover-bg: rgba(75%, 75%, 75%, .25); |
| --a-active-text: #c00; |
| --a-active-underline: #c00; |
| |
| --blockquote-border: silver; |
| --blockquote-bg: transparent; |
| --blockquote-text: currentcolor; |
| |
| --issue-border: #e05252; |
| --issue-bg: #fbe9e9; |
| --issue-text: var(--text); |
| --issueheading-text: #831616; |
| |
| --example-border: #e0cb52; |
| --example-bg: #fcfaee; |
| --example-text: var(--text); |
| --exampleheading-text: #574b0f; |
| |
| --note-border: #52e052; |
| --note-bg: #e9fbe9; |
| --note-text: var(--text); |
| --noteheading-text: hsl(120, 70%, 30%); |
| --notesummary-underline: silver; |
| |
| --assertion-border: #aaa; |
| --assertion-bg: #eee; |
| --assertion-text: black; |
| |
| --advisement-border: orange; |
| --advisement-bg: #fec; |
| --advisement-text: var(--text); |
| --advisementheading-text: #b35f00; |
| |
| --warning-border: red; |
| --warning-bg: hsla(40,100%,50%,0.95); |
| --warning-text: var(--text); |
| |
| --amendment-border: #330099; |
| --amendment-bg: #F5F0FF; |
| --amendment-text: var(--text); |
| --amendmentheading-text: #220066; |
| |
| --def-border: #8ccbf2; |
| --def-bg: #def; |
| --def-text: var(--text); |
| --defrow-border: #bbd7e9; |
| |
| --datacell-border: silver; |
| |
| --indexinfo-text: #707070; |
| |
| --indextable-hover-text: black; |
| --indextable-hover-bg: #f7f8f9; |
| |
| --outdatedspec-bg: rgba(0, 0, 0, .5); |
| --outdatedspec-text: black; |
| --outdated-bg: maroon; |
| --outdated-text: white; |
| --outdated-shadow: red; |
| |
| --editedrec-bg: darkorange; |
| } |
| |
| @media (prefers-color-scheme: dark) { |
| :root { |
| --text: #ddd; |
| --bg: black; |
| |
| --unofficial-watermark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cg fill='%23100808' transform='translate(200 200) rotate(-45) translate(-200 -200)' stroke='%23100808' stroke-width='3'%3E%3Ctext x='50%25' y='220' style='font: bold 70px sans-serif; text-anchor: middle; letter-spacing: 6px;'%3EUNOFFICIAL%3C/text%3E%3Ctext x='50%25' y='305' style='font: bold 70px sans-serif; text-anchor: middle; letter-spacing: 6px;'%3EDRAFT%3C/text%3E%3C/g%3E%3C/svg%3E"); |
| |
| --logo-bg: #1a5e9a; |
| --logo-active-bg: #c00; |
| --logo-text: white; |
| |
| --tocnav-normal-text: #999; |
| --tocnav-normal-bg: var(--bg); |
| --tocnav-hover-text: var(--tocnav-normal-text); |
| --tocnav-hover-bg: #080808; |
| --tocnav-active-text: #f44; |
| --tocnav-active-bg: var(--tocnav-normal-bg); |
| |
| --tocsidebar-text: var(--text); |
| --tocsidebar-bg: #080808; |
| --tocsidebar-shadow: rgba(255,255,255,.1); |
| --tocsidebar-heading-text: hsla(203,20%,40%,.7); |
| |
| --toclink-text: var(--text); |
| --toclink-underline: #6af; |
| --toclink-visited-text: var(--toclink-text); |
| --toclink-visited-underline: #054572; |
| |
| --heading-text: #8af; |
| |
| --hr-text: var(--text); |
| |
| --algo-border: #456; |
| |
| --del-text: #f44; |
| --del-bg: transparent; |
| --ins-text: #4a4; |
| --ins-bg: transparent; |
| |
| --a-normal-text: #6af; |
| --a-normal-underline: #555; |
| --a-visited-text: var(--a-normal-text); |
| --a-visited-underline: var(--a-normal-underline); |
| --a-hover-bg: rgba(25%, 25%, 25%, .2); |
| --a-active-text: #f44; |
| --a-active-underline: var(--a-active-text); |
| |
| --borderedblock-bg: rgba(255, 255, 255, .05); |
| |
| --blockquote-border: silver; |
| --blockquote-bg: var(--borderedblock-bg); |
| --blockquote-text: currentcolor; |
| |
| --issue-border: #e05252; |
| --issue-bg: var(--borderedblock-bg); |
| --issue-text: var(--text); |
| --issueheading-text: hsl(0deg, 70%, 70%); |
| |
| --example-border: hsl(50deg, 90%, 60%); |
| --example-bg: var(--borderedblock-bg); |
| --example-text: var(--text); |
| --exampleheading-text: hsl(50deg, 70%, 70%); |
| |
| --note-border: hsl(120deg, 100%, 35%); |
| --note-bg: var(--borderedblock-bg); |
| --note-text: var(--text); |
| --noteheading-text: hsl(120, 70%, 70%); |
| --notesummary-underline: silver; |
| |
| --assertion-border: #444; |
| --assertion-bg: var(--borderedblock-bg); |
| --assertion-text: var(--text); |
| |
| --advisement-border: orange; |
| --advisement-bg: #222218; |
| --advisement-text: var(--text); |
| --advisementheading-text: #f84; |
| |
| --warning-border: red; |
| --warning-bg: hsla(40,100%,20%,0.95); |
| --warning-text: var(--text); |
| |
| --amendment-border: #330099; |
| --amendment-bg: #080010; |
| --amendment-text: var(--text); |
| --amendmentheading-text: #cc00ff; |
| |
| --def-border: #8ccbf2; |
| --def-bg: #080818; |
| --def-text: var(--text); |
| --defrow-border: #136; |
| |
| --datacell-border: silver; |
| |
| --indexinfo-text: #aaa; |
| |
| --indextable-hover-text: var(--text); |
| --indextable-hover-bg: #181818; |
| |
| --outdatedspec-bg: rgba(255, 255, 255, .5); |
| --outdatedspec-text: black; |
| --outdated-bg: maroon; |
| --outdated-text: white; |
| --outdated-shadow: red; |
| |
| --editedrec-bg: darkorange; |
| } |
| /* In case a transparent-bg image doesn't expect to be on a dark bg, |
| which is quite common in practice... */ |
| img { background: white; } |
| } |
| </style> |
| <style>/* Boilerplate: style-counters */ |
| body { |
| counter-reset: example figure issue; |
| } |
| .issue { |
| counter-increment: issue; |
| } |
| .issue:not(.no-marker)::before { |
| content: "Issue " counter(issue); |
| } |
| |
| .example { |
| counter-increment: example; |
| } |
| .example:not(.no-marker)::before { |
| content: "Example " counter(example); |
| } |
| .invalid.example:not(.no-marker)::before, |
| .illegal.example:not(.no-marker)::before { |
| content: "Invalid Example" counter(example); |
| } |
| |
| figcaption { |
| counter-increment: figure; |
| } |
| figcaption:not(.no-marker)::before { |
| content: "Figure " counter(figure) " "; |
| } |
| </style> |
| <style>/* Boilerplate: style-dfn-panel */ |
| :root { |
| --dfnpanel-bg: #ddd; |
| --dfnpanel-text: var(--text); |
| --dfnpanel-target-bg: #ffc; |
| --dfnpanel-target-outline: orange; |
| } |
| @media (prefers-color-scheme: dark) { |
| :root { |
| --dfnpanel-bg: #222; |
| --dfnpanel-text: var(--text); |
| --dfnpanel-target-bg: #333; |
| --dfnpanel-target-outline: silver; |
| } |
| } |
| .dfn-panel { |
| position: absolute; |
| z-index: 35; |
| width: 20em; |
| width: 300px; |
| height: auto; |
| max-height: 500px; |
| overflow: auto; |
| padding: 0.5em 0.75em; |
| font: small Helvetica Neue, sans-serif, Droid Sans Fallback; |
| background: var(--dfnpanel-bg); |
| color: var(--dfnpanel-text); |
| border: outset 0.2em; |
| white-space: normal; /* in case it's moved into a pre */ |
| } |
| .dfn-panel:not(.on) { display: none; } |
| .dfn-panel * { margin: 0; padding: 0; text-indent: 0; } |
| .dfn-panel > b { display: block; } |
| .dfn-panel a { color: var(--dfnpanel-text); } |
| .dfn-panel a:not(:hover) { text-decoration: none !important; border-bottom: none !important; } |
| .dfn-panel a:focus { |
| outline: 5px auto Highlight; |
| outline: 5px auto -webkit-focus-ring-color; |
| } |
| .dfn-panel > b + b { margin-top: 0.25em; } |
| .dfn-panel ul { padding: 0 0 0 1em; list-style: none; } |
| .dfn-panel li a { |
| max-width: calc(300px - 1.5em - 1em); |
| overflow: hidden; |
| text-overflow: ellipsis; |
| } |
| |
| .dfn-panel.activated { |
| display: inline-block; |
| position: fixed; |
| left: 8px; |
| bottom: 2em; |
| margin: 0 auto; |
| max-width: calc(100vw - 1.5em - .4em - .5em); |
| max-height: 30vh; |
| transition: left 1s ease-out, bottom 1s ease-out; |
| } |
| |
| .dfn-panel .link-item:hover { |
| text-decoration: underline; |
| } |
| .dfn-panel .link-item .copy-icon { |
| opacity: 0; |
| } |
| .dfn-panel .link-item:hover .copy-icon, |
| .dfn-panel .link-item .copy-icon:focus { |
| opacity: 1; |
| } |
| |
| .dfn-panel .copy-icon { |
| display: inline-block; |
| margin-right: 0.5em; |
| width: 0.85em; |
| height: 1em; |
| border-radius: 3px; |
| background-color: #ccc; |
| cursor: pointer; |
| } |
| |
| .dfn-panel .copy-icon .icon { |
| width: 100%; |
| height: 100%; |
| background-color: #fff; |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| position: relative; |
| } |
| |
| .dfn-panel .copy-icon .icon::before { |
| content: ""; |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| border: 1px solid black; |
| background-color: #ccc; |
| opacity: 0.25; |
| transform: translate(3px, -3px); |
| } |
| |
| .dfn-panel .copy-icon:active .icon::before { |
| opacity: 1; |
| } |
| |
| .dfn-paneled[role="button"] { cursor: help; } |
| |
| .highlighted { |
| animation: target-fade 3s; |
| } |
| |
| @keyframes target-fade { |
| from { |
| background-color: var(--dfnpanel-target-bg); |
| outline: 5px solid var(--dfnpanel-target-outline); |
| } |
| to { |
| color: var(--a-normal-text); |
| background-color: transparent; |
| outline: transparent; |
| } |
| } |
| </style> |
| <style>/* Boilerplate: style-idl-highlighting */ |
| pre.idl.highlight { |
| background: var(--borderedblock-bg, var(--def-bg)); |
| } |
| </style> |
| <style>/* Boilerplate: style-issues */ |
| a[href].issue-return { |
| float: right; |
| float: inline-end; |
| color: var(--issueheading-text); |
| font-weight: bold; |
| text-decoration: none; |
| } |
| </style> |
| <style>/* Boilerplate: style-md-lists */ |
| /* This is a weird hack for me not yet following the commonmark spec |
| regarding paragraph and lists. */ |
| [data-md] > :first-child { |
| margin-top: 0; |
| } |
| [data-md] > :last-child { |
| margin-bottom: 0; |
| } |
| </style> |
| <style>/* Boilerplate: style-ref-hints */ |
| :root { |
| --ref-hint-bg: #ddd; |
| --ref-hint-text: var(--text); |
| } |
| @media (prefers-color-scheme: dark) { |
| :root { |
| --ref-hint-bg: #222; |
| --ref-hint-text: var(--text); |
| } |
| } |
| |
| .ref-hint { |
| display: inline-block; |
| position: absolute; |
| z-index: 35; |
| width: 20em; |
| width: 300px; |
| height: auto; |
| max-height: 500px; |
| overflow: auto; |
| padding: 0.5em 0.5em; |
| font: small Helvetica Neue, sans-serif, Droid Sans Fallback; |
| background: var(--ref-hint-bg); |
| color: var(--ref-hint-text); |
| border: outset 0.2em; |
| white-space: normal; /* in case it's moved into a pre */ |
| } |
| |
| .ref-hint * { margin: 0; padding: 0; text-indent: 0; } |
| |
| .ref-hint ul { padding: 0 0 0 1em; list-style: none; } |
| </style> |
| <style>/* Boilerplate: style-selflinks */ |
| :root { |
| --selflink-text: white; |
| --selflink-bg: gray; |
| --selflink-hover-text: black; |
| } |
| .heading, .issue, .note, .example, li, dt { |
| position: relative; |
| } |
| a.self-link { |
| position: absolute; |
| top: 0; |
| left: calc(-1 * (3.5rem - 26px)); |
| width: calc(3.5rem - 26px); |
| height: 2em; |
| text-align: center; |
| border: none; |
| transition: opacity .2s; |
| opacity: .5; |
| } |
| a.self-link:hover { |
| opacity: 1; |
| } |
| .heading > a.self-link { |
| font-size: 83%; |
| } |
| .example > a.self-link, |
| .note > a.self-link, |
| .issue > a.self-link { |
| /* These blocks are overflow:auto, so positioning outside |
| doesn't work. */ |
| left: auto; |
| right: 0; |
| } |
| li > a.self-link { |
| left: calc(-1 * (3.5rem - 26px) - 2em); |
| } |
| dfn > a.self-link { |
| top: auto; |
| left: auto; |
| opacity: 0; |
| width: 1.5em; |
| height: 1.5em; |
| background: var(--selflink-bg); |
| color: var(--selflink-text); |
| font-style: normal; |
| transition: opacity .2s, background-color .2s, color .2s; |
| } |
| dfn:hover > a.self-link { |
| opacity: 1; |
| } |
| dfn > a.self-link:hover { |
| color: var(--selflink-hover-text); |
| } |
| |
| a.self-link::before { content: "¶"; } |
| .heading > a.self-link::before { content: "§"; } |
| dfn > a.self-link::before { content: "#"; } |
| </style> |
| <style>/* Boilerplate: style-syntax-highlighting */ |
| code.highlight { padding: .1em; border-radius: .3em; } |
| pre.highlight, pre > code.highlight { display: block; padding: 1em; margin: .5em 0; overflow: auto; border-radius: 0; } |
| |
| .highlight:not(.idl) { background: rgba(0, 0, 0, .03); } |
| c-[a] { color: #990055 } /* Keyword.Declaration */ |
| c-[b] { color: #990055 } /* Keyword.Type */ |
| c-[c] { color: #708090 } /* Comment */ |
| c-[d] { color: #708090 } /* Comment.Multiline */ |
| c-[e] { color: #0077aa } /* Name.Attribute */ |
| c-[f] { color: #669900 } /* Name.Tag */ |
| c-[g] { color: #222222 } /* Name.Variable */ |
| c-[k] { color: #990055 } /* Keyword */ |
| c-[l] { color: #000000 } /* Literal */ |
| c-[m] { color: #000000 } /* Literal.Number */ |
| c-[n] { color: #0077aa } /* Name */ |
| c-[o] { color: #999999 } /* Operator */ |
| c-[p] { color: #999999 } /* Punctuation */ |
| c-[s] { color: #a67f59 } /* Literal.String */ |
| c-[t] { color: #a67f59 } /* Literal.String.Single */ |
| c-[u] { color: #a67f59 } /* Literal.String.Double */ |
| c-[cp] { color: #708090 } /* Comment.Preproc */ |
| c-[c1] { color: #708090 } /* Comment.Single */ |
| c-[cs] { color: #708090 } /* Comment.Special */ |
| c-[kc] { color: #990055 } /* Keyword.Constant */ |
| c-[kn] { color: #990055 } /* Keyword.Namespace */ |
| c-[kp] { color: #990055 } /* Keyword.Pseudo */ |
| c-[kr] { color: #990055 } /* Keyword.Reserved */ |
| c-[ld] { color: #000000 } /* Literal.Date */ |
| c-[nc] { color: #0077aa } /* Name.Class */ |
| c-[no] { color: #0077aa } /* Name.Constant */ |
| c-[nd] { color: #0077aa } /* Name.Decorator */ |
| c-[ni] { color: #0077aa } /* Name.Entity */ |
| c-[ne] { color: #0077aa } /* Name.Exception */ |
| c-[nf] { color: #0077aa } /* Name.Function */ |
| c-[nl] { color: #0077aa } /* Name.Label */ |
| c-[nn] { color: #0077aa } /* Name.Namespace */ |
| c-[py] { color: #0077aa } /* Name.Property */ |
| c-[ow] { color: #999999 } /* Operator.Word */ |
| c-[mb] { color: #000000 } /* Literal.Number.Bin */ |
| c-[mf] { color: #000000 } /* Literal.Number.Float */ |
| c-[mh] { color: #000000 } /* Literal.Number.Hex */ |
| c-[mi] { color: #000000 } /* Literal.Number.Integer */ |
| c-[mo] { color: #000000 } /* Literal.Number.Oct */ |
| c-[sb] { color: #a67f59 } /* Literal.String.Backtick */ |
| c-[sc] { color: #a67f59 } /* Literal.String.Char */ |
| c-[sd] { color: #a67f59 } /* Literal.String.Doc */ |
| c-[se] { color: #a67f59 } /* Literal.String.Escape */ |
| c-[sh] { color: #a67f59 } /* Literal.String.Heredoc */ |
| c-[si] { color: #a67f59 } /* Literal.String.Interpol */ |
| c-[sx] { color: #a67f59 } /* Literal.String.Other */ |
| c-[sr] { color: #a67f59 } /* Literal.String.Regex */ |
| c-[ss] { color: #a67f59 } /* Literal.String.Symbol */ |
| c-[vc] { color: #0077aa } /* Name.Variable.Class */ |
| c-[vg] { color: #0077aa } /* Name.Variable.Global */ |
| c-[vi] { color: #0077aa } /* Name.Variable.Instance */ |
| c-[il] { color: #000000 } /* Literal.Number.Integer.Long */ |
| |
| @media (prefers-color-scheme: dark) { |
| .highlight:not(.idl) { background: rgba(255, 255, 255, .05); } |
| |
| c-[a] { color: #d33682 } /* Keyword.Declaration */ |
| c-[b] { color: #d33682 } /* Keyword.Type */ |
| c-[c] { color: #2aa198 } /* Comment */ |
| c-[d] { color: #2aa198 } /* Comment.Multiline */ |
| c-[e] { color: #268bd2 } /* Name.Attribute */ |
| c-[f] { color: #b58900 } /* Name.Tag */ |
| c-[g] { color: #cb4b16 } /* Name.Variable */ |
| c-[k] { color: #d33682 } /* Keyword */ |
| c-[l] { color: #657b83 } /* Literal */ |
| c-[m] { color: #657b83 } /* Literal.Number */ |
| c-[n] { color: #268bd2 } /* Name */ |
| c-[o] { color: #657b83 } /* Operator */ |
| c-[p] { color: #657b83 } /* Punctuation */ |
| c-[s] { color: #6c71c4 } /* Literal.String */ |
| c-[t] { color: #6c71c4 } /* Literal.String.Single */ |
| c-[u] { color: #6c71c4 } /* Literal.String.Double */ |
| c-[ch] { color: #2aa198 } /* Comment.Hashbang */ |
| c-[cp] { color: #2aa198 } /* Comment.Preproc */ |
| c-[cpf] { color: #2aa198 } /* Comment.PreprocFile */ |
| c-[c1] { color: #2aa198 } /* Comment.Single */ |
| c-[cs] { color: #2aa198 } /* Comment.Special */ |
| c-[kc] { color: #d33682 } /* Keyword.Constant */ |
| c-[kn] { color: #d33682 } /* Keyword.Namespace */ |
| c-[kp] { color: #d33682 } /* Keyword.Pseudo */ |
| c-[kr] { color: #d33682 } /* Keyword.Reserved */ |
| c-[ld] { color: #657b83 } /* Literal.Date */ |
| c-[nc] { color: #268bd2 } /* Name.Class */ |
| c-[no] { color: #268bd2 } /* Name.Constant */ |
| c-[nd] { color: #268bd2 } /* Name.Decorator */ |
| c-[ni] { color: #268bd2 } /* Name.Entity */ |
| c-[ne] { color: #268bd2 } /* Name.Exception */ |
| c-[nf] { color: #268bd2 } /* Name.Function */ |
| c-[nl] { color: #268bd2 } /* Name.Label */ |
| c-[nn] { color: #268bd2 } /* Name.Namespace */ |
| c-[py] { color: #268bd2 } /* Name.Property */ |
| c-[ow] { color: #657b83 } /* Operator.Word */ |
| c-[mb] { color: #657b83 } /* Literal.Number.Bin */ |
| c-[mf] { color: #657b83 } /* Literal.Number.Float */ |
| c-[mh] { color: #657b83 } /* Literal.Number.Hex */ |
| c-[mi] { color: #657b83 } /* Literal.Number.Integer */ |
| c-[mo] { color: #657b83 } /* Literal.Number.Oct */ |
| c-[sa] { color: #6c71c4 } /* Literal.String.Affix */ |
| c-[sb] { color: #6c71c4 } /* Literal.String.Backtick */ |
| c-[sc] { color: #6c71c4 } /* Literal.String.Char */ |
| c-[dl] { color: #6c71c4 } /* Literal.String.Delimiter */ |
| c-[sd] { color: #6c71c4 } /* Literal.String.Doc */ |
| c-[se] { color: #6c71c4 } /* Literal.String.Escape */ |
| c-[sh] { color: #6c71c4 } /* Literal.String.Heredoc */ |
| c-[si] { color: #6c71c4 } /* Literal.String.Interpol */ |
| c-[sx] { color: #6c71c4 } /* Literal.String.Other */ |
| c-[sr] { color: #6c71c4 } /* Literal.String.Regex */ |
| c-[ss] { color: #6c71c4 } /* Literal.String.Symbol */ |
| c-[fm] { color: #268bd2 } /* Name.Function.Magic */ |
| c-[vc] { color: #cb4b16 } /* Name.Variable.Class */ |
| c-[vg] { color: #cb4b16 } /* Name.Variable.Global */ |
| c-[vi] { color: #cb4b16 } /* Name.Variable.Instance */ |
| c-[vm] { color: #cb4b16 } /* Name.Variable.Magic */ |
| c-[il] { color: #657b83 } /* Literal.Number.Integer.Long */ |
| } |
| </style> |
| <style>/* Boilerplate: style-var-click-highlighting */ |
| /* |
| Colors were chosen in Lab using https://nixsensor.com/free-color-converter/ |
| D50 2deg illuminant, L in [0,100], a and b in [-128, 128] |
| 0 = lab(85,0,85) |
| 1 = lab(85,80,30) |
| 2 = lab(85,-40,40) |
| 3 = lab(85,-50,0) |
| 4 = lab(85,5,15) |
| 5 = lab(85,-10,-50) |
| 6 = lab(85,35,-15) |
| |
| For darkmode: |
| 0 = oklab(50% 0% 108%) |
| 1 = oklab(50% -51% 51%) |
| 2 = oklab(50% -64% -20%) |
| 3 = oklab(50% 6% 19%) |
| 4 = oklab(50% -12% -64%) |
| 5 = oklab(50% 44% -19%) |
| 6 = oklab(50% 102% 38%) |
| */ |
| |
| [data-algorithm] var { cursor: pointer; } |
| var[data-var-color] { background-color: var(--var-bg); box-shadow: 0 0 0 2px var(--var-bg); } |
| |
| var[data-var-color] { --var-bg: #F4D200; } |
| var[data-var-color="1"] { --var-bg: #FF87A2; } |
| var[data-var-color="2"] { --var-bg: #96E885; } |
| var[data-var-color="3"] { --var-bg: #3EEED2; } |
| var[data-var-color="4"] { --var-bg: #EACFB6; } |
| var[data-var-color="5"] { --var-bg: #82DDFF; } |
| var[data-var-color="6"] { --var-vg: #FFBCF2; } |
| |
| @media (prefers-color-scheme: dark) { |
| var[data-var-color] { --var-bg: #bc1a00; } |
| var[data-var-color="1"] { --var-bg: #007f00; } |
| var[data-var-color="2"] { --var-bg: #008698; } |
| var[data-var-color="3"] { --var-bg: #7f5b2b; } |
| var[data-var-color="4"] { --var-bg: #004df3; } |
| var[data-var-color="5"] { --var-bg: #a1248a; } |
| var[data-var-color="6"] { --var-vg: #ff0000; } |
| } |
| </style> |
| <link href="https://www.w3.org/StyleSheets/TR/2021/W3C-ED" rel="stylesheet"> |
| <link href="https://www.w3.org/StyleSheets/TR/2021/dark.css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css"> |
| <body class="h-entry"> |
| <div class="head"> |
| <p data-fill-with="logo"><a class="logo" href="https://www.w3.org/"> |
| <img alt="W3C" height="48" src="https://www.w3.org/StyleSheets/TR/2021/logos/W3C" width="72"> |
| </a> |
| </p> |
| <h1 class="p-name no-ref" id="title">WebAssembly JavaScript Interface</h1> |
| <p id="w3c-state"><a href="https://www.w3.org/standards/types/#ED">Editor’s Draft</a>, |
| <time class="dt-updated" datetime="2025-09-26">26 September 2025</time></p> |
| <details open> |
| <summary>More details about this document</summary> |
| <div data-fill-with="spec-metadata"> |
| <dl> |
| <dt>This version: |
| <dd><a class="u-url" href="https://webassembly.github.io/spec/js-api/">https://webassembly.github.io/spec/js-api/</a> |
| <dt>Latest published version: |
| <dd><a href="https://www.w3.org/TR/wasm-js-api-2/">https://www.w3.org/TR/wasm-js-api-2/</a> |
| <dt>Implementation Report: |
| <dd><a href="https://webassembly.org/features/">https://webassembly.org/features/</a> |
| <dt>Feedback: |
| <dd><a href="https://github.com/WebAssembly/spec/issues">GitHub</a> |
| <dd><a href="#issues-index">Inline In Spec</a> |
| <dt class="editor">Editor: |
| <dd class="editor p-author h-card vcard" data-editor-id="46309"><span class="p-name fn">Ms2ger</span> (<span class="p-org org">Igalia</span>) |
| <dt>Issue Tracking: |
| <dd><a href="https://github.com/WebAssembly/spec/labels/wasm-js-api-2">GitHub Issues</a> |
| </dl> |
| </div> |
| </details> |
| <div data-fill-with="warning"></div> |
| <p class="copyright" data-fill-with="copyright"><a href="https://www.w3.org/policies/#copyright">Copyright</a> © 2025 <a href="https://www.w3.org/">World Wide Web Consortium</a>. <abbr title="World Wide Web Consortium">W3C</abbr><sup>®</sup> <a href="https://www.w3.org/policies/#Legal_Disclaimer">liability</a>, <a href="https://www.w3.org/policies/#W3C_Trademarks">trademark</a> and <a href="https://www.w3.org/copyright/software-license/" rel="license" title="W3C Software and Document License">permissive document license</a> rules apply. |
| </p> |
| <hr title="Separator for header"> |
| </div> |
| <div class="p-summary" data-fill-with="abstract"> |
| <h2 class="no-num no-toc no-ref heading settled" id="abstract"><span class="content">Abstract</span></h2> |
| <p>This document provides an explicit JavaScript API for interacting with WebAssembly.</p> |
| |
| |
| |
| |
| This is part of a collection of related documents: |
| the <a href="https://www.w3.org/TR/wasm-core/">Core WebAssembly Specification</a>, |
| the <a href="https://www.w3.org/TR/wasm-js-api/">WebAssembly JS Interface</a>, |
| and the <a href="https://www.w3.org/TR/wasm-web-api/">WebAssembly Web API</a>. |
| |
| </div> |
| <h2 class="no-num no-toc no-ref heading settled" id="sotd"><span class="content">Status of this document</span></h2> |
| <div data-fill-with="status"> |
| <p></p> |
| </div> |
| <div data-fill-with="at-risk"></div> |
| <nav data-fill-with="table-of-contents" id="toc"> |
| <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2> |
| <ol class="toc" role="directory"> |
| <li><a href="#intro"><span class="secno">1</span> <span class="content">Introduction</span></a> |
| <li><a href="#sample"><span class="secno">2</span> <span class="content">Sample API Usage</span></a> |
| <li><a href="#notation"><span class="secno">3</span> <span class="content">Notation</span></a> |
| <li> |
| <a href="#webassembly-storage"><span class="secno">4</span> <span class="content">Internal storage</span></a> |
| <ol class="toc"> |
| <li><a href="#store"><span class="secno">4.1</span> <span class="content">Interaction of the WebAssembly Store with JavaScript</span></a> |
| <li><a href="#object-caches"><span class="secno">4.2</span> <span class="content">WebAssembly JS Object Caches</span></a> |
| </ol> |
| <li> |
| <a href="#webassembly-namespace"><span class="secno">5</span> <span class="content">The WebAssembly Namespace</span></a> |
| <ol class="toc"> |
| <li><a href="#modules"><span class="secno">5.1</span> <span class="content">Modules</span></a> |
| <li><a href="#instances"><span class="secno">5.2</span> <span class="content">Instances</span></a> |
| <li><a href="#memories"><span class="secno">5.3</span> <span class="content">Memories</span></a> |
| <li><a href="#tables"><span class="secno">5.4</span> <span class="content">Tables</span></a> |
| <li><a href="#globals"><span class="secno">5.5</span> <span class="content">Globals</span></a> |
| <li><a href="#exported-function-exotic-objects"><span class="secno">5.6</span> <span class="content">Exported Functions</span></a> |
| <li> |
| <a href="#tags"><span class="secno">5.7</span> <span class="content">Tags</span></a> |
| <ol class="toc"> |
| <li><a href="#tag-types"><span class="secno">5.7.1</span> <span class="content">Tag types</span></a> |
| </ol> |
| <li><a href="#gc-exotic-objects"><span class="secno">5.8</span> <span class="content">Garbage Collected Objects</span></a> |
| <li> |
| <a href="#exceptions"><span class="secno">5.9</span> <span class="content">Exceptions</span></a> |
| <ol class="toc"> |
| <li><a href="#js-exceptions"><span class="secno">5.9.1</span> <span class="content">JavaScript exceptions</span></a> |
| </ol> |
| <li><a href="#error-objects"><span class="secno">5.10</span> <span class="content">Error Objects</span></a> |
| </ol> |
| <li> |
| <a href="#builtins"><span class="secno">6</span> <span class="content">Builtins</span></a> |
| <ol class="toc"> |
| <li> |
| <a href="#builtins-js-string"><span class="secno">6.1</span> <span class="content">String Builtins</span></a> |
| <ol class="toc"> |
| <li><a href="#builtins-js-string-abstract-ops"><span class="secno">6.1.1</span> <span class="content">Abstract operations</span></a> |
| <li><a href="#js-string-cast"><span class="secno">6.1.2</span> <span class="content">cast</span></a> |
| <li><a href="#js-string-test"><span class="secno">6.1.3</span> <span class="content">test</span></a> |
| <li><a href="#js-string-fromCharCodeArray"><span class="secno">6.1.4</span> <span class="content">fromCharCodeArray</span></a> |
| <li><a href="#js-string-intoCharCodeArray"><span class="secno">6.1.5</span> <span class="content">intoCharCodeArray</span></a> |
| <li><a href="#js-string-fromCharCode"><span class="secno">6.1.6</span> <span class="content">fromCharCode</span></a> |
| <li><a href="#js-string-fromCodePoint"><span class="secno">6.1.7</span> <span class="content">fromCodePoint</span></a> |
| <li><a href="#js-string-charCodeAt"><span class="secno">6.1.8</span> <span class="content">charCodeAt</span></a> |
| <li><a href="#js-string-codePointAt"><span class="secno">6.1.9</span> <span class="content">codePointAt</span></a> |
| <li><a href="#js-string-length"><span class="secno">6.1.10</span> <span class="content">length</span></a> |
| <li><a href="#js-string-concat"><span class="secno">6.1.11</span> <span class="content">concat</span></a> |
| <li><a href="#js-string-substring"><span class="secno">6.1.12</span> <span class="content">substring</span></a> |
| <li><a href="#js-string-equals"><span class="secno">6.1.13</span> <span class="content">equals</span></a> |
| <li><a href="#js-string-compare"><span class="secno">6.1.14</span> <span class="content">compare</span></a> |
| </ol> |
| </ol> |
| <li> |
| <a href="#errors"><span class="secno">7</span> <span class="content">Error Condition Mappings to JavaScript</span></a> |
| <ol class="toc"> |
| <li><a href="#stack-overflow"><span class="secno">7.1</span> <span class="content">Stack Overflow</span></a> |
| <li><a href="#out-of-memory"><span class="secno">7.2</span> <span class="content">Out of Memory</span></a> |
| </ol> |
| <li><a href="#limits"><span class="secno">8</span> <span class="content">Implementation-defined Limits</span></a> |
| <li><a href="#security-considerations"><span class="secno">9</span> <span class="content">Security and Privacy Considerations</span></a> |
| <li> |
| <a href="#change-history"><span class="secno">10</span> <span class="content">Change History</span></a> |
| <ol class="toc"> |
| <li><a href="#release-20"><span class="secno">10.1</span> <span class="content">Release 2.0</span></a> |
| <li><a href="#release-30"><span class="secno">10.2</span> <span class="content">Release 3.0</span></a> |
| </ol> |
| <li> |
| <a href="#w3c-conformance"><span class="secno"></span> <span class="content">Conformance</span></a> |
| <ol class="toc"> |
| <li><a href="#w3c-conventions"><span class="secno"></span> <span class="content">Document conventions</span></a> |
| <li><a href="#w3c-conformant-algorithms"><span class="secno"></span> <span class="content">Conformant Algorithms</span></a> |
| </ol> |
| <li> |
| <a href="#index"><span class="secno"></span> <span class="content">Index</span></a> |
| <ol class="toc"> |
| <li><a href="#index-defined-here"><span class="secno"></span> <span class="content">Terms defined by this specification</span></a> |
| <li><a href="#index-defined-elsewhere"><span class="secno"></span> <span class="content">Terms defined by reference</span></a> |
| </ol> |
| <li> |
| <a href="#references"><span class="secno"></span> <span class="content">References</span></a> |
| <ol class="toc"> |
| <li><a href="#normative"><span class="secno"></span> <span class="content">Normative References</span></a> |
| <li><a href="#informative"><span class="secno"></span> <span class="content">Informative References</span></a> |
| </ol> |
| <li><a href="#idl-index"><span class="secno"></span> <span class="content">IDL Index</span></a> |
| <li><a href="#issues-index"><span class="secno"></span> <span class="content">Issues Index</span></a> |
| </ol> |
| </nav> |
| <main> |
| <h2 class="heading settled" data-level="1" id="intro"><span class="secno">1. </span><span class="content">Introduction</span><a class="self-link" href="#intro"></a></h2> |
| <p>By design, the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/intro/introduction.html#scope" id="ref-for-scope">scope</a> of the WebAssembly core specification <a data-link-type="biblio" href="#biblio-webassembly" title="WebAssembly Core Specification">[WEBASSEMBLY]</a> does not include a description of how WebAssembly programs interact with their surrounding execution environment. |
| Instead it defines an abstract <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/#appending/embedding.html" id="ref-for-appending/embedding.html">embedding interface</a> between WebAssembly and its environment, (called the <em>embedder</em>). |
| It is only through this interface that an embedder interacts with the semantics of WebAssembly, and the embedder implements the connection between its host environment and the embedding API. |
| This document describes the embedding of WebAssembly into JavaScript <a data-link-type="biblio" href="#biblio-ecmascript" title="ECMAScript Language Specification">[ECMASCRIPT]</a> environments, including how WebAssembly modules can be constructed and instantiated, how imported and exported functions are called, how data is exchanged, and how errors are handled. |
| When the JavaScript environment is itself embedded in a Web browser, the Web API spec <a data-link-type="biblio" href="#biblio-wasmweb" title="WebAssembly Web API Specification">[WASMWEB]</a> describes additional behavior relevant to the Web environment.</p> |
| <h2 class="heading settled" data-level="2" id="sample"><span class="secno">2. </span><span class="content">Sample API Usage</span><a class="self-link" href="#sample"></a></h2> |
| <p><em>This section is non-normative.</em></p> |
| <p>Given <code>demo.wat</code> (encoded to <code>demo.wasm</code>):</p> |
| <pre class="language-lisp highlight"><c- p>(</c-><c- g>module</c-> |
| <c- p>(</c->import <c- s>"js"</c-> <c- s>"import1"</c-> <c- p>(</c-><c- g>func</c-> <c- g>$i1</c-><c- p>))</c-> |
| <c- p>(</c->import <c- s>"js"</c-> <c- s>"import2"</c-> <c- p>(</c-><c- g>func</c-> <c- g>$i2</c-><c- p>))</c-> |
| <c- p>(</c-><c- g>func</c-> <c- g>$main</c-> <c- p>(</c-><c- g>call</c-> <c- g>$i1</c-><c- p>))</c-> |
| <c- p>(</c-><c- g>start</c-> <c- g>$main</c-><c- p>)</c-> |
| <c- p>(</c-><c- g>func</c-> <c- p>(</c->export <c- s>"f"</c-><c- p>)</c-> <c- p>(</c-><c- g>call</c-> <c- g>$i2</c-><c- p>))</c-> |
| <c- p>)</c-> |
| </pre> |
| <p>and the following JavaScript, run in a browser:</p> |
| <pre class="language-javascript highlight"><c- a>var</c-> importObj <c- o>=</c-> <c- p>{</c->js<c- o>:</c-> <c- p>{</c-> |
| import1<c- o>:</c-> <c- p>()</c-> <c- p>=></c-> console<c- p>.</c->log<c- p>(</c-><c- u>"hello,"</c-><c- p>),</c-> |
| import2<c- o>:</c-> <c- p>()</c-> <c- p>=></c-> console<c- p>.</c->log<c- p>(</c-><c- u>"world!"</c-><c- p>)</c-> |
| <c- p>}};</c-> |
| fetch<c- p>(</c-><c- t>'demo.wasm'</c-><c- p>).</c->then<c- p>(</c->response <c- p>=></c-> |
| response<c- p>.</c->arrayBuffer<c- p>()</c-> |
| <c- p>).</c->then<c- p>(</c->buffer <c- p>=></c-> |
| WebAssembly<c- p>.</c->instantiate<c- p>(</c->buffer<c- p>,</c-> importObj<c- p>)</c-> |
| <c- p>).</c->then<c- p>(({</c->module<c- p>,</c-> instance<c- p>})</c-> <c- p>=></c-> |
| instance<c- p>.</c->exports<c- p>.</c->f<c- p>()</c-> |
| <c- p>);</c-> |
| </pre> |
| <h2 class="heading settled" data-level="3" id="notation"><span class="secno">3. </span><span class="content">Notation</span><a class="self-link" href="#notation"></a></h2> |
| <p>This specification depends on the Infra Standard. <a data-link-type="biblio" href="#biblio-infra" title="Infra Standard">[INFRA]</a></p> |
| <p>The WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/conventions.html#grammar-notation" id="ref-for-grammar-notation">sequence</a> type is equivalent to the <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list" id="ref-for-list">list</a> type defined there; values of one |
| are treated as values of the other transparently.</p> |
| <h2 class="heading settled" data-level="4" id="webassembly-storage"><span class="secno">4. </span><span class="content">Internal storage</span><a class="self-link" href="#webassembly-storage"></a></h2> |
| <h3 class="heading settled" data-level="4.1" id="store"><span class="secno">4.1. </span><span class="content">Interaction of the WebAssembly Store with JavaScript</span><a class="self-link" href="#store"></a></h3> |
| <p class="note" role="note"><span class="marker">Note:</span> WebAssembly semantics are defined in terms of an abstract <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-store" id="ref-for-syntax-store">store</a>, representing the state of the WebAssembly abstract machine. WebAssembly operations take a store and return an updated store.</p> |
| <p>Each <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#agent" id="ref-for-agent">agent</a> has an <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="associated-store">associated store</dfn>. When a new agent is created, its associated store is set to the result of <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-store-init" id="ref-for-embed-store-init">store_init</a>().</p> |
| <p class="note" role="note"><span class="marker">Note:</span> In this specification, no WebAssembly-related objects, memory or addresses can be shared among agents in an <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-agent-clusters" id="ref-for-sec-agent-clusters">agent cluster</a>. In a future version of WebAssembly, this may change.</p> |
| <p>Elements of the WebAssembly store may be <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="identified-with">identified with</dfn> JavaScript values. In particular, each WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#memory-instances" id="ref-for-memory-instances">memory instance</a> with a corresponding <code class="idl"><a data-link-type="idl" href="#memory" id="ref-for-memory">Memory</a></code> object is identified with a JavaScript <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-data-blocks" id="ref-for-sec-data-blocks">Data Block</a>; modifications to this Data Block are identified to updating the agent’s store to a store which reflects those changes, and vice versa.</p> |
| <h3 class="heading settled" data-level="4.2" id="object-caches"><span class="secno">4.2. </span><span class="content">WebAssembly JS Object Caches</span><a class="self-link" href="#object-caches"></a></h3> |
| <p class="note" role="note"><span class="marker">Note:</span> There are several WebAssembly objects that may have a corresponding JavaScript object. The correspondence is stored in a per-agent mapping from WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#addresses" id="ref-for-addresses">address</a>es to JavaScript objects. |
| This mapping is used to ensure that, for a given <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#agent" id="ref-for-agent①">agent</a>, there exists at most one JavaScript object for a particular WebAssembly address. However, this property does not hold for shared objects.</p> |
| <p>Each <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#agent" id="ref-for-agent②">agent</a> is associated with the following <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#ordered-map" id="ref-for-ordered-map">ordered map</a>s:</p> |
| <ul> |
| <li data-md> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="memory-object-cache">Memory object cache</dfn>, mapping <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr" id="ref-for-syntax-memaddr">memory address</a>es to <code class="idl"><a data-link-type="idl" href="#memory" id="ref-for-memory①">Memory</a></code> objects.</p> |
| <li data-md> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="table-object-cache">Table object cache</dfn>, mapping <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tableaddr" id="ref-for-syntax-tableaddr">table address</a>es to <code class="idl"><a data-link-type="idl" href="#table" id="ref-for-table">Table</a></code> objects.</p> |
| <li data-md> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="exported-function-cache">Exported Function cache</dfn>, mapping <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-funcaddr" id="ref-for-syntax-funcaddr">function address</a>es to <a data-link-type="dfn" href="#exported-function" id="ref-for-exported-function">Exported Function</a> objects.</p> |
| <li data-md> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="exported-gc-object-cache">Exported GC Object cache</dfn>, mapping <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-structaddr" id="ref-for-syntax-structaddr">struct address</a>es and <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-arrayaddr" id="ref-for-syntax-arrayaddr">array address</a>es to <a data-link-type="dfn" href="#exported-gc-object" id="ref-for-exported-gc-object">Exported GC Object</a> objects.</p> |
| <li data-md> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="global-object-cache">Global object cache</dfn>, mapping <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-globaladdr" id="ref-for-syntax-globaladdr">global address</a>es to <code class="idl"><a data-link-type="idl" href="#global" id="ref-for-global">Global</a></code> objects.</p> |
| <li data-md> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="tag-object-cache">Tag object cache</dfn>, mapping <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tagaddr" id="ref-for-syntax-tagaddr">tag addresses</a> to <code class="idl"><a data-link-type="idl" href="#tag" id="ref-for-tag">Tag</a></code> objects.</p> |
| <li data-md> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="exception-object-cache">Exception object cache</dfn>, mapping <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-exnaddr" id="ref-for-syntax-exnaddr">exception address</a>es to <code class="idl"><a data-link-type="idl" href="#exception" id="ref-for-exception">Exception</a></code> objects.</p> |
| <li data-md> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="host-value-cache">Host value cache</dfn>, mapping <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostaddr" id="ref-for-syntax-hostaddr">host address</a>es to values.</p> |
| </ul> |
| <h2 class="heading settled" data-level="5" id="webassembly-namespace"><span class="secno">5. </span><span class="content">The WebAssembly Namespace</span><a class="self-link" href="#webassembly-namespace"></a></h2> |
| <pre class="idl highlight def"><c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-webassemblyinstantiatedsource"><code><c- g>WebAssemblyInstantiatedSource</c-></code></dfn> { |
| <c- b>required</c-> <a data-link-type="idl-name" href="#module" id="ref-for-module"><c- n>Module</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssemblyInstantiatedSource" data-dfn-type="dict-member" data-export data-type="Module" id="dom-webassemblyinstantiatedsource-module"><code><c- g>module</c-></code></dfn>; |
| <c- b>required</c-> <a data-link-type="idl-name" href="#instance" id="ref-for-instance"><c- n>Instance</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssemblyInstantiatedSource" data-dfn-type="dict-member" data-export data-type="Instance" id="dom-webassemblyinstantiatedsource-instance"><code><c- g>instance</c-></code></dfn>; |
| }; |
| |
| <c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-webassemblycompileoptions"><code><c- g>WebAssemblyCompileOptions</c-></code></dfn> { |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString" id="ref-for-idl-USVString"><c- b>USVString</c-></a>? <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssemblyCompileOptions" data-dfn-type="dict-member" data-export data-type="USVString?" id="dom-webassemblycompileoptions-importedstringconstants"><code><c- g>importedStringConstants</c-></code></dfn>; |
| <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence" id="ref-for-idl-sequence"><c- b>sequence</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString" id="ref-for-idl-USVString①"><c- b>USVString</c-></a>> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssemblyCompileOptions" data-dfn-type="dict-member" data-export data-type="sequence<USVString>" id="dom-webassemblycompileoptions-builtins"><code><c- g>builtins</c-></code></dfn>; |
| }; |
| |
| [Exposed=*] |
| <c- b>namespace</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="namespace" data-export id="namespacedef-webassembly"><code><c- g>WebAssembly</c-></code></dfn> { |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-boolean" id="ref-for-idl-boolean"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="method" href="#dom-webassembly-validate" id="ref-for-dom-webassembly-validate"><c- g>validate</c-></a>(<a data-link-type="idl-name" href="https://webidl.spec.whatwg.org/#BufferSource" id="ref-for-BufferSource"><c- n>BufferSource</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly/validate(bytes, options), WebAssembly/validate(bytes)" data-dfn-type="argument" data-export id="dom-webassembly-validate-bytes-options-bytes"><code><c- g>bytes</c-></code></dfn>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-webassemblycompileoptions" id="ref-for-dictdef-webassemblycompileoptions"><c- n>WebAssemblyCompileOptions</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly/validate(bytes, options), WebAssembly/validate(bytes)" data-dfn-type="argument" data-export id="dom-webassembly-validate-bytes-options-options"><code><c- g>options</c-></code></dfn> = {}); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise" id="ref-for-idl-promise"><c- b>Promise</c-></a><<a data-link-type="idl-name" href="#module" id="ref-for-module①"><c- n>Module</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-webassembly-compile" id="ref-for-dom-webassembly-compile"><c- g>compile</c-></a>(<a data-link-type="idl-name" href="https://webidl.spec.whatwg.org/#BufferSource" id="ref-for-BufferSource①"><c- n>BufferSource</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly/compile(bytes, options), WebAssembly/compile(bytes)" data-dfn-type="argument" data-export id="dom-webassembly-compile-bytes-options-bytes"><code><c- g>bytes</c-></code></dfn>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-webassemblycompileoptions" id="ref-for-dictdef-webassemblycompileoptions①"><c- n>WebAssemblyCompileOptions</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly/compile(bytes, options), WebAssembly/compile(bytes)" data-dfn-type="argument" data-export id="dom-webassembly-compile-bytes-options-options"><code><c- g>options</c-></code></dfn> = {}); |
| |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise" id="ref-for-idl-promise①"><c- b>Promise</c-></a><<a data-link-type="idl-name" href="#dictdef-webassemblyinstantiatedsource" id="ref-for-dictdef-webassemblyinstantiatedsource"><c- n>WebAssemblyInstantiatedSource</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-webassembly-instantiate" id="ref-for-dom-webassembly-instantiate"><c- g>instantiate</c-></a>( |
| <a data-link-type="idl-name" href="https://webidl.spec.whatwg.org/#BufferSource" id="ref-for-BufferSource②"><c- n>BufferSource</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly/instantiate(bytes, importObject, options), WebAssembly/instantiate(bytes, importObject), WebAssembly/instantiate(bytes)" data-dfn-type="argument" data-export id="dom-webassembly-instantiate-bytes-importobject-options-bytes"><code><c- g>bytes</c-></code></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-object" id="ref-for-idl-object"><c- b>object</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly/instantiate(bytes, importObject, options), WebAssembly/instantiate(bytes, importObject), WebAssembly/instantiate(bytes)" data-dfn-type="argument" data-export id="dom-webassembly-instantiate-bytes-importobject-options-importobject"><code><c- g>importObject</c-></code></dfn>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-webassemblycompileoptions" id="ref-for-dictdef-webassemblycompileoptions②"><c- n>WebAssemblyCompileOptions</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly/instantiate(bytes, importObject, options), WebAssembly/instantiate(bytes, importObject), WebAssembly/instantiate(bytes)" data-dfn-type="argument" data-export id="dom-webassembly-instantiate-bytes-importobject-options-options"><code><c- g>options</c-></code></dfn> = {}); |
| |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise" id="ref-for-idl-promise②"><c- b>Promise</c-></a><<a data-link-type="idl-name" href="#instance" id="ref-for-instance①"><c- n>Instance</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-webassembly-instantiate-moduleobject-importobject" id="ref-for-dom-webassembly-instantiate-moduleobject-importobject"><c- g>instantiate</c-></a>( |
| <a data-link-type="idl-name" href="#module" id="ref-for-module②"><c- n>Module</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly/instantiate(moduleObject, importObject), WebAssembly/instantiate(moduleObject)" data-dfn-type="argument" data-export id="dom-webassembly-instantiate-moduleobject-importobject-moduleobject"><code><c- g>moduleObject</c-></code></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-object" id="ref-for-idl-object①"><c- b>object</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly/instantiate(moduleObject, importObject), WebAssembly/instantiate(moduleObject)" data-dfn-type="argument" data-export id="dom-webassembly-instantiate-moduleobject-importobject-importobject"><code><c- g>importObject</c-></code></dfn>); |
| |
| <c- b>readonly</c-> <c- b>attribute</c-> <a data-link-type="idl-name" href="#tag" id="ref-for-tag①"><c- n>Tag</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="Tag" href="#dom-webassembly-jstag" id="ref-for-dom-webassembly-jstag"><c- g>JSTag</c-></a>; |
| }; |
| </pre> |
| <div class="algorithm" data-algorithm="compile a WebAssembly module"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="compile-a-webassembly-module">compile a WebAssembly module</dfn> from source bytes <var>bytes</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>module</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-decode" id="ref-for-embed-module-decode">module_decode</a>(<var>bytes</var>). If <var>module</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error">error</a>, return <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①">error</a>.</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-validate" id="ref-for-embed-module-validate">module_validate</a>(<var>module</var>) is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error②">error</a>, return <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error③">error</a>.</p> |
| <li data-md> |
| <p>Return <var>module</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="validate builtins and imported string for a WebAssembly module"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="validate-builtins-and-imported-string-for-a-webassembly-module">validate builtins and imported string for a WebAssembly module</dfn> from module <var>module</var>, enabled builtins <var>builtinSetNames</var>, and <var>importedStringModule</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="#validate-builtin-set-names" id="ref-for-validate-builtin-set-names">validating builtin set names</a> for <var>builtinSetNames</var> is false, return false.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate">For each</a> <var>import</var> of <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-imports" id="ref-for-embed-module-imports">module_imports</a>(<var>module</var>),</p> |
| <ol> |
| <li data-md> |
| <p>If <var>importedStringModule</var> is not null and <var>import</var>[0] equals <var>importedStringModule</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>importExternType</var> be <var>import</var>[2].</p> |
| <li data-md> |
| <p>Let <var>stringExternType</var> be <code>global const (ref extern)</code>.</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-externtype" id="ref-for-embed-match-externtype">match_externtype</a>(<var>stringExternType</var>, <var>importExternType</var>) is false, return false</p> |
| </ol> |
| <li data-md> |
| <p>Else,</p> |
| <ol> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="#validate-an-import-for-builtins" id="ref-for-validate-an-import-for-builtins">validating a import for builtin</a> with <var>import</var> and <var>builtinSetNames</var> is false, return false.</p> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Return true.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="validate(bytes, options)" data-algorithm-for="WebAssembly"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly" data-dfn-type="method" data-export data-lt="validate(bytes, options)|validate(bytes)" id="dom-webassembly-validate"><code>validate(<var>bytes</var>, <var>options</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>stableBytes</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-get-buffer-source-copy" id="ref-for-dfn-get-buffer-source-copy">copy of the bytes held by the buffer</a> <var>bytes</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#compile-a-webassembly-module" id="ref-for-compile-a-webassembly-module">Compile</a> <var>stableBytes</var> as a WebAssembly module and store the results as <var>module</var>.</p> |
| <li data-md> |
| <p>If <var>module</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error④">error</a>, return false.</p> |
| <li data-md> |
| <p>Let <var>builtinSetNames</var> be <var>options</var>["builtins"].</p> |
| <li data-md> |
| <p>Let <var>importedStringModule</var> be <var>options</var>["importedStringConstants"].</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="#validate-builtins-and-imported-string-for-a-webassembly-module" id="ref-for-validate-builtins-and-imported-string-for-a-webassembly-module">validating builtins and imported strings</a> for <var>module</var> with <var>builtinSetNames</var> and <var>importedStringModule</var> returns false, return false.</p> |
| <li data-md> |
| <p>Return true.</p> |
| </ol> |
| </div> |
| <p>A <code class="idl"><a data-link-type="idl" href="#module" id="ref-for-module③">Module</a></code> object represents a single WebAssembly module. Each <code class="idl"><a data-link-type="idl" href="#module" id="ref-for-module④">Module</a></code> object has the following internal slots:</p> |
| <ul> |
| <li data-md> |
| <p>[[Module]] : a WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/modules.html#syntax-module" id="ref-for-syntax-module">module</a></p> |
| <li data-md> |
| <p>[[Bytes]] : the source bytes of [[Module]].</p> |
| <li data-md> |
| <p>[[BuiltinSets]] : an ordered set of names of <a href="#builtins">builtin sets</a></p> |
| <li data-md> |
| <p>[[ImportedStringModule]] : an optional module specifier string where any string constant can be imported from.</p> |
| </ul> |
| <div class="algorithm" data-algorithm="construct a WebAssembly module object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="construct-a-webassembly-module-object">construct a WebAssembly module object</dfn> from a module <var>module</var>, source bytes <var>bytes</var>, enabled builtins <var>builtinSetNames</var>, and <var>importedStringModule</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>moduleObject</var> be a new <code class="idl"><a data-link-type="idl" href="#module" id="ref-for-module⑤">Module</a></code> object.</p> |
| <li data-md> |
| <p>Set <var>moduleObject</var>.[[Module]] to <var>module</var>.</p> |
| <li data-md> |
| <p>Set <var>moduleObject</var>.[[Bytes]] to <var>bytes</var>.</p> |
| <li data-md> |
| <p>Set <var>moduleObject</var>.[[BuiltinSets]] to <var>builtinSetNames</var>.</p> |
| <li data-md> |
| <p>Set <var>moduleObject</var>.[[ImportedStringModule]] to <var>importedStringModule</var>.</p> |
| <li data-md> |
| <p>Return <var>moduleObject</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="asynchronously compile a WebAssembly module"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="asynchronously-compile-a-webassembly-module">asynchronously compile a WebAssembly module</dfn> from source bytes <var>bytes</var> and <code class="idl"><a data-link-type="idl" href="#dictdef-webassemblycompileoptions" id="ref-for-dictdef-webassemblycompileoptions③">WebAssemblyCompileOptions</a></code> <var>options</var> using optional <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#task-source" id="ref-for-task-source">task source</a> <var>taskSource</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>promise</var> be <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#a-new-promise" id="ref-for-a-new-promise">a new promise</a>.</p> |
| <li data-md> |
| <p>Run the following steps <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/infrastructure.html#in-parallel" id="ref-for-in-parallel">in parallel</a>:</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#compile-a-webassembly-module" id="ref-for-compile-a-webassembly-module①">Compile the WebAssembly module</a> <var>bytes</var> and store the result as <var>module</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task" id="ref-for-queue-a-task">Queue a task</a> to perform the following steps. If <var>taskSource</var> was provided, queue the task on that task source.</p> |
| <ol> |
| <li data-md> |
| <p>If <var>module</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error⑤">error</a>, reject <var>promise</var> with a <code class="idl"><a data-link-type="idl" href="#exceptiondef-compileerror" id="ref-for-exceptiondef-compileerror">CompileError</a></code> exception.</p> |
| <li data-md> |
| <p>Let <var>builtinSetNames</var> be <var>options</var>["builtins"].</p> |
| <li data-md> |
| <p>Let <var>importedStringModule</var> be <var>options</var>["importedStringConstants"].</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="#validate-builtins-and-imported-string-for-a-webassembly-module" id="ref-for-validate-builtins-and-imported-string-for-a-webassembly-module①">validating builtins and imported strings</a> for <var>module</var> with <var>builtinSetNames</var> and <var>importedStringModule</var> is false, reject <var>promise</var> with a <code class="idl"><a data-link-type="idl" href="#exceptiondef-compileerror" id="ref-for-exceptiondef-compileerror①">CompileError</a></code> exception.</p> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#construct-a-webassembly-module-object" id="ref-for-construct-a-webassembly-module-object">Construct a WebAssembly module object</a> from <var>module</var>, <var>bytes</var>, <var>builtinSetNames</var>, <var>importedStringModule</var>, and let <var>moduleObject</var> be the result.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#resolve" id="ref-for-resolve">Resolve</a> <var>promise</var> with <var>moduleObject</var>.</p> |
| </ol> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Return <var>promise</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="compile(bytes, options)" data-algorithm-for="WebAssembly"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly" data-dfn-type="method" data-export data-lt="compile(bytes, options)|compile(bytes)" id="dom-webassembly-compile"><code>compile(<var>bytes</var>, <var>options</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>stableBytes</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-get-buffer-source-copy" id="ref-for-dfn-get-buffer-source-copy①">copy of the bytes held by the buffer</a> <var>bytes</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#asynchronously-compile-a-webassembly-module" id="ref-for-asynchronously-compile-a-webassembly-module">Asynchronously compile a WebAssembly module</a> from <var>stableBytes</var> using <var>options</var> and return the result.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="instantiate imported strings"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="instantiate-imported-strings">instantiate imported strings</dfn> with module <var>module</var> and <var>importedStringModule</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>importedStringModule</var> is not null.</p> |
| <li data-md> |
| <p>Let <var>exportsObject</var> be <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-ordinaryobjectcreate" id="ref-for-sec-ordinaryobjectcreate">OrdinaryObjectCreate</a>(null).</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate①">For each</a> (<var>moduleName</var>, <var>componentName</var>, <var>externtype</var>) of <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-imports" id="ref-for-embed-module-imports①">module_imports</a>(<var>module</var>),</p> |
| <ol> |
| <li data-md> |
| <p>If <var>moduleName</var> does not equal <var>importedStringModule</var>, then <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#iteration-continue" id="ref-for-iteration-continue">continue</a>.</p> |
| <li data-md> |
| <p>Let <var>stringConstant</var> be <var>componentName</var>.</p> |
| <li data-md> |
| <p>Let <var>status</var> be <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createdataproperty" id="ref-for-sec-createdataproperty">CreateDataProperty</a>(<var>exportsObject</var>, <var>stringConstant</var>, <var>stringConstant</var>).</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>status</var> is true.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>exportsObject</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="read-the-imports"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="read-the-imports">read the imports</dfn> from a WebAssembly module <var>module</var> from imports object <var>importObject</var>, enabled builtins <var>builtinSetNames</var>, and <var>importedStringModule</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>If <var>module</var>.<a data-link-type="dfn" data-refhint-key="32e497d6" href="https://webassembly.github.io/spec/core/syntax/modules.html#syntax-module" id="ref-for-syntax-module①">imports</a> <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-is-empty" id="ref-for-list-is-empty">is not empty</a>, and <var>importObject</var> is undefined, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror">TypeError</a></code> exception.</p> |
| <li data-md> |
| <p>Let <var>builtinOrStringImports</var> be the ordered map « ».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate②">For each</a> <var>builtinSetName</var> of <var>builtinSetNames</var>,</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>builtinOrStringImports</var> does not contain <var>builtinSetName</var></p> |
| <li data-md> |
| <p>If <var>builtinSetName</var> does not refer to a builtin set, then <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#iteration-continue" id="ref-for-iteration-continue①">continue</a>.</p> |
| <li data-md> |
| <p>Let <var>exportsObject</var> be the result of <a data-link-type="dfn" href="#instantiate-a-builtin-set" id="ref-for-instantiate-a-builtin-set">instantiate a builtin set</a> with <var>builtinSetName</var></p> |
| <li data-md> |
| <p>Let <var>builtinSetQualifiedName</var> be <var>builtinSetName</var> prefixed with "wasm:"</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set">Set</a> <var>builtinOrStringImports</var>[<var>builtinSetQualifiedName</var>] to <var>exportsObject</var></p> |
| </ol> |
| <li data-md> |
| <p>If <var>importedStringModule</var> is not null,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>exportsObject</var> be the result of <a data-link-type="dfn" href="#instantiate-imported-strings" id="ref-for-instantiate-imported-strings">instantiate imported strings</a> with <var>module</var> and <var>importedStringModule</var></p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set①">Set</a> <var>builtinOrStringImports</var>[<var>importedStringModule</var>] to <var>exportsObject</var></p> |
| </ol> |
| <li data-md> |
| <p>Let <var>imports</var> be « ».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate③">For each</a> (<var>moduleName</var>, <var>componentName</var>, <var>externtype</var>) of <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-imports" id="ref-for-embed-module-imports②">module_imports</a>(<var>module</var>),</p> |
| <ol> |
| <li data-md> |
| <p>If <var>builtinOrStringImports</var> <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists">contains</a> <var>moduleName</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>o</var> be <var>builtinOrStringImports</var>[<var>moduleName</var>].</p> |
| <li data-md> |
| <p>If <var>o</var> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-object-type" id="ref-for-sec-object-type">is not an Object</a> or if <var>o</var> <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①">does not contain</a> <var>componentName</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Set <var>o</var> to <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-get-o-p" id="ref-for-sec-get-o-p">Get</a>(<var>importObject</var>, <var>moduleName</var>).</p> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Else,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>o</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-get-o-p" id="ref-for-sec-get-o-p①">Get</a>(<var>importObject</var>, <var>moduleName</var>).</p> |
| </ol> |
| <li data-md> |
| <p>If <var>o</var> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-object-type" id="ref-for-sec-object-type①">is not an Object</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①">TypeError</a></code> exception.</p> |
| <li data-md> |
| <p>Let <var>v</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-get-o-p" id="ref-for-sec-get-o-p②">Get</a>(<var>o</var>, <var>componentName</var>).</p> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types">func</a> <var>functype</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iscallable" id="ref-for-sec-iscallable">IsCallable</a>(<var>v</var>) is false, throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror">LinkError</a></code> exception.</p> |
| <li data-md> |
| <p>If <var>v</var> has a [[FunctionAddress]] internal slot, and therefore is an <a data-link-type="dfn" href="#exported-function" id="ref-for-exported-function①">Exported Function</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>funcaddr</var> be the value of <var>v</var>’s [[FunctionAddress]] internal slot.</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#create-a-host-function" id="ref-for-create-a-host-function">Create a host function</a> from <var>v</var> and <var>functype</var>, and let <var>funcaddr</var> be the result.</p> |
| <li data-md> |
| <p>Let <var>index</var> be the number of external functions in <var>imports</var>. This value <var>index</var> is known as the <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="index-of-the-host-function">index of the host function</dfn> <var>funcaddr</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>externfunc</var> be the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval">external value</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①">func</a> <var>funcaddr</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append">Append</a> <var>externfunc</var> to <var>imports</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" data-refhint-key="82295e1c" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types①">global</a> <var>mut</var> <var>valtype</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>v</var> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#implements" id="ref-for-implements">implements</a> <code class="idl"><a data-link-type="idl" href="#global" id="ref-for-global①">Global</a></code>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>globaladdr</var> be <var>v</var>.[[Global]].</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>valtype</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype">i64</a> and <var>v</var> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-bigint-type" id="ref-for-sec-ecmascript-language-types-bigint-type">is not a BigInt</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror①">LinkError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>valtype</var> is one of <a data-link-type="dfn" data-refhint-key="1eccdce5" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype①">i32</a>, <a data-link-type="dfn" data-refhint-key="a4646532" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype②">f32</a> or <a data-link-type="dfn" data-refhint-key="487b76fe" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype③">f64</a> and <var>v</var> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type" id="ref-for-sec-ecmascript-language-types-number-type">is not a Number</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror②">LinkError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>valtype</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types">v128</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror③">LinkError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>value</var> be <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue">ToWebAssemblyValue</a>(<var>v</var>, <var>valtype</var>). If this operation throws a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror②">TypeError</a></code>, catch it, and throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror④">LinkError</a></code> exception.</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store">associated store</a>.</p> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>globaladdr</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-alloc" id="ref-for-embed-global-alloc">global_alloc</a>(<var>store</var>, <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut" id="ref-for-syntax-mut">const</a> <var>valtype</var>, <var>value</var>).</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①">associated store</a> to <var>store</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>externglobal</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval②">global</a> <var>globaladdr</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append①">Append</a> <var>externglobal</var> to <var>imports</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" data-refhint-key="2be47a22" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types②">mem</a> <var>memtype</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>v</var> does not <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#implements" id="ref-for-implements①">implement</a> <code class="idl"><a data-link-type="idl" href="#memory" id="ref-for-memory②">Memory</a></code>, throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror⑤">LinkError</a></code> exception.</p> |
| <li data-md> |
| <p>Let <var>externmem</var> be the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval③">external value</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval④">mem</a> <var>v</var>.[[Memory]].</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append②">Append</a> <var>externmem</var> to <var>imports</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" data-refhint-key="eb9c1b7f" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types③">table</a> <var>tabletype</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>v</var> does not <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#implements" id="ref-for-implements②">implement</a> <code class="idl"><a data-link-type="idl" href="#table" id="ref-for-table①">Table</a></code>, throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror⑥">LinkError</a></code> exception.</p> |
| <li data-md> |
| <p>Let <var>tableaddr</var> be <var>v</var>.[[Table]].</p> |
| <li data-md> |
| <p>Let <var>externtable</var> be the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval⑤">external value</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval⑥">table</a> <var>tableaddr</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append③">Append</a> <var>externtable</var> to <var>imports</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" data-refhint-key="a5c9608b" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types④">tag</a> <var>attribute</var> <var>functype</var>,</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>attribute</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-tagtype" id="ref-for-syntax-tagtype">exception</a>.</p> |
| <li data-md> |
| <p>If <var>v</var> does not <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#implements" id="ref-for-implements③">implement</a> <code class="idl"><a data-link-type="idl" href="#tag" id="ref-for-tag②">Tag</a></code>, throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror⑦">LinkError</a></code> exception.</p> |
| <li data-md> |
| <p>Let <var>tagaddr</var> be <var>v</var>.[[Address]].</p> |
| <li data-md> |
| <p>Let <var>externtag</var> be the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval⑦">external value</a> <a data-link-type="dfn" data-refhint-key="c77be4cb" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval⑧">tag</a> <var>tagaddr</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append④">Append</a> <var>externtag</var> to <var>imports</var>.</p> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Return <var>imports</var>.</p> |
| </ol> |
| <p class="note" role="note"><span class="marker">Note:</span> This algorithm only verifies the right kind of JavaScript values are passed. |
| The verification of WebAssembly type requirements is deferred to the |
| "<a data-link-type="dfn" href="#instantiate-the-core-of-a-webassembly-module" id="ref-for-instantiate-the-core-of-a-webassembly-module">instantiate the core of a WebAssembly module</a>" algorithm.</p> |
| </div> |
| <div class="algorithm" data-algorithm="create an exports object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-an-exports-object">create an exports object</dfn> from a WebAssembly module <var>module</var> and instance <var>instance</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>exportsObject</var> be <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-ordinaryobjectcreate" id="ref-for-sec-ordinaryobjectcreate①">OrdinaryObjectCreate</a>(null).</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate④">For each</a> (<var>name</var>, <var>externtype</var>) of <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-exports" id="ref-for-embed-module-exports">module_exports</a>(<var>module</var>),</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>externval</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-instance-export" id="ref-for-embed-instance-export">instance_export</a>(<var>instance</var>, <var>name</var>).</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>externval</var> is not <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error⑥">error</a>.</p> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types⑤">func</a> <var>functype</var>,</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>externval</var> is of the form <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval⑨">func</a> <var>funcaddr</var>.</p> |
| <li data-md> |
| <p>Let <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①⓪">func</a> <var>funcaddr</var> be <var>externval</var>.</p> |
| <li data-md> |
| <p>Let <var>func</var> be the result of creating <a data-link-type="dfn" href="#a-new-exported-function" id="ref-for-a-new-exported-function">a new Exported Function</a> from <var>funcaddr</var>.</p> |
| <li data-md> |
| <p>Let <var>value</var> be <var>func</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" data-refhint-key="82295e1c" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types⑥">global</a> <var>mut</var> <var>globaltype</var>,</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>externval</var> is of the form <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①①">global</a> <var>globaladdr</var>.</p> |
| <li data-md> |
| <p>Let <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①②">global</a> <var>globaladdr</var> be <var>externval</var>.</p> |
| <li data-md> |
| <p>Let <var>global</var> be <a data-link-type="dfn" href="#create-a-global-object" id="ref-for-create-a-global-object">a new Global object</a> created from <var>globaladdr</var>.</p> |
| <li data-md> |
| <p>Let <var>value</var> be <var>global</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" data-refhint-key="2be47a22" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types⑦">mem</a> <var>memtype</var>,</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>externval</var> is of the form <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①③">mem</a> <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Let <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①④">mem</a> <var>memaddr</var> be <var>externval</var>.</p> |
| <li data-md> |
| <p>Let <var>memory</var> be <a data-link-type="dfn" href="#create-a-memory-object" id="ref-for-create-a-memory-object">a new Memory object</a> created from <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Let <var>value</var> be <var>memory</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" data-refhint-key="eb9c1b7f" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types⑧">table</a> <var>tabletype</var>,</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>externval</var> is of the form <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①⑤">table</a> <var>tableaddr</var>.</p> |
| <li data-md> |
| <p>Let <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①⑥">table</a> <var>tableaddr</var> be <var>externval</var>.</p> |
| <li data-md> |
| <p>Let <var>table</var> be <a data-link-type="dfn" href="#create-a-table-object" id="ref-for-create-a-table-object">a new Table object</a> created from <var>tableaddr</var>.</p> |
| <li data-md> |
| <p>Let <var>value</var> be <var>table</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>externtype</var> is of the form <a data-link-type="dfn" data-refhint-key="a5c9608b" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types⑨">tag</a> <var>attribute</var> <var>functype</var>,</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>attribute</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-tagtype" id="ref-for-syntax-tagtype①">exception</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>externval</var> is of the form <a data-link-type="dfn" data-refhint-key="c77be4cb" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①⑦">tag</a> <var>tagaddr</var>.</p> |
| <li data-md> |
| <p>Let <a data-link-type="dfn" data-refhint-key="c77be4cb" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval" id="ref-for-syntax-externval①⑧">tag</a> <var>tagaddr</var> be <var>externval</var>.</p> |
| <li data-md> |
| <p>Let <var>tag</var> be <a data-link-type="dfn" href="#create-a-tag-object" id="ref-for-create-a-tag-object">a new Tag object</a> created from <var>tagaddr</var>.</p> |
| <li data-md> |
| <p>Let <var>value</var> be <var>tag</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>status</var> be <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑥">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createdataproperty" id="ref-for-sec-createdataproperty①">CreateDataProperty</a>(<var>exportsObject</var>, <var>name</var>, <var>value</var>).</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>status</var> is true.</p> |
| </ol> |
| <p class="note" role="note"><span class="marker">Note:</span> the validity and uniqueness checks performed during <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/modules.html#valid-module" id="ref-for-valid-module">WebAssembly module validation</a> ensure that each property name is valid and no properties are defined twice.</p> |
| <li data-md> |
| <p>Perform <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑦">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-setintegritylevel" id="ref-for-sec-setintegritylevel">SetIntegrityLevel</a>(<var>exportsObject</var>, <code>"frozen"</code>).</p> |
| <li data-md> |
| <p>Return <var>exportsObject</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="initialize an instance object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="initialize-an-instance-object">initialize an instance object</dfn> <var>instanceObject</var> from a WebAssembly module <var>module</var> and instance <var>instance</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#create-an-exports-object" id="ref-for-create-an-exports-object">Create an exports object</a> from <var>module</var> and <var>instance</var> and let <var>exportsObject</var> be the result.</p> |
| <li data-md> |
| <p>Set <var>instanceObject</var>.[[Instance]] to <var>instance</var>.</p> |
| <li data-md> |
| <p>Set <var>instanceObject</var>.[[Exports]] to <var>exportsObject</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="instantiate the core of a WebAssembly module"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="instantiate-the-core-of-a-webassembly-module">instantiate the core of a WebAssembly module</dfn> from a module <var>module</var> and imports <var>imports</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>result</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-instantiate" id="ref-for-embed-module-instantiate">module_instantiate</a>(<var>store</var>, <var>module</var>, <var>imports</var>).</p> |
| <li data-md> |
| <p>If <var>result</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error⑦">error</a>, throw an appropriate exception type:</p> |
| <ul> |
| <li data-md> |
| <p>A <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror⑧">LinkError</a></code> exception for most cases which occur during linking.</p> |
| <li data-md> |
| <p>If the error came when running the start function, throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror">RuntimeError</a></code> for most errors which occur from WebAssembly, or the error object propagated from inner ECMAScript code.</p> |
| <li data-md> |
| <p>Another error type if appropriate, for example an out-of-memory exception, as documented in <a href="#errors">the WebAssembly error mapping</a>.</p> |
| </ul> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>instance</var>) be <var>result</var>.</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p>Return <var>instance</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="asynchronously instantiate a WebAssembly module"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="asynchronously-instantiate-a-webassembly-module">asynchronously instantiate a WebAssembly module</dfn> from a <code class="idl"><a data-link-type="idl" href="#module" id="ref-for-module⑥">Module</a></code> <var>moduleObject</var> and imports <var>importObject</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>promise</var> be <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#a-new-promise" id="ref-for-a-new-promise①">a new promise</a>.</p> |
| <li data-md> |
| <p>Let <var>module</var> be <var>moduleObject</var>.[[Module]].</p> |
| <li data-md> |
| <p>Let <var>builtinSetNames</var> be <var>moduleObject</var>.[[BuiltinSets]].</p> |
| <li data-md> |
| <p>Let <var>importedStringModule</var> be <var>moduleObject</var>.[[ImportedStringModule]].</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#read-the-imports" id="ref-for-read-the-imports">Read the imports</a> of <var>module</var> with imports <var>importObject</var>, <var>builtinSetNames</var> and <var>importedStringModule</var>, and let <var>imports</var> be the result. |
| If this operation throws an exception, catch it, <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#reject" id="ref-for-reject">reject</a> <var>promise</var> with the exception, and return <var>promise</var>.</p> |
| <li data-md> |
| <p>Run the following steps <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/infrastructure.html#in-parallel" id="ref-for-in-parallel①">in parallel</a>:</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task" id="ref-for-queue-a-task①">Queue a task</a> to perform the following steps: |
| Note: Implementation-specific work may be performed here.</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#instantiate-the-core-of-a-webassembly-module" id="ref-for-instantiate-the-core-of-a-webassembly-module①">Instantiate the core of a WebAssembly module</a> <var>module</var> with <var>imports</var>, and let <var>instance</var> be the result. |
| If this throws an exception, catch it, <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#reject" id="ref-for-reject①">reject</a> <var>promise</var> with the exception, and terminate these substeps.</p> |
| <li data-md> |
| <p>Let <var>instanceObject</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#new" id="ref-for-new">new</a> <code class="idl"><a data-link-type="idl" href="#instance" id="ref-for-instance②">Instance</a></code>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-an-instance-object" id="ref-for-initialize-an-instance-object">Initialize</a> <var>instanceObject</var> from <var>module</var> and <var>instance</var>. |
| If this throws an exception, catch it, <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#reject" id="ref-for-reject②">reject</a> <var>promise</var> with the exception, and terminate these substeps.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#resolve" id="ref-for-resolve①">Resolve</a> <var>promise</var> with <var>instanceObject</var>.</p> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Return <var>promise</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="instantiate a promise of a module"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="instantiate-a-promise-of-a-module">instantiate a promise of a module</dfn> <var>promiseOfModule</var> with imports <var>importObject</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>promise</var> be <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#a-new-promise" id="ref-for-a-new-promise②">a new promise</a>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#upon-fulfillment" id="ref-for-upon-fulfillment">Upon fulfillment</a> of <var>promiseOfModule</var> with value <var>module</var>:</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#asynchronously-instantiate-a-webassembly-module" id="ref-for-asynchronously-instantiate-a-webassembly-module">Instantiate the WebAssembly module</a> <var>module</var> importing <var>importObject</var>, and let <var>innerPromise</var> be the result.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#upon-fulfillment" id="ref-for-upon-fulfillment①">Upon fulfillment</a> of <var>innerPromise</var> with value <var>instance</var>.</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>result</var> be the <code class="idl"><a data-link-type="idl" href="#dictdef-webassemblyinstantiatedsource" id="ref-for-dictdef-webassemblyinstantiatedsource①">WebAssemblyInstantiatedSource</a></code> value «[ "<code class="idl"><a data-link-type="idl" href="#dom-webassemblyinstantiatedsource-module" id="ref-for-dom-webassemblyinstantiatedsource-module">module</a></code>" → <var>module</var>, "<code class="idl"><a data-link-type="idl" href="#dom-webassemblyinstantiatedsource-instance" id="ref-for-dom-webassemblyinstantiatedsource-instance">instance</a></code>" → <var>instance</var> ]».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#resolve" id="ref-for-resolve②">Resolve</a> <var>promise</var> with <var>result</var>.</p> |
| </ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#upon-rejection" id="ref-for-upon-rejection">Upon rejection</a> of <var>innerPromise</var> with reason <var>reason</var>:</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#reject" id="ref-for-reject③">Reject</a> <var>promise</var> with <var>reason</var>.</p> |
| </ol> |
| </ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#upon-rejection" id="ref-for-upon-rejection①">Upon rejection</a> of <var>promiseOfModule</var> with reason <var>reason</var>:</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#reject" id="ref-for-reject④">Reject</a> <var>promise</var> with <var>reason</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>promise</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="instantiate(bytes, importObject, options)" data-algorithm-for="WebAssembly"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly" data-dfn-type="method" data-export data-lt="instantiate(bytes, importObject, options)|instantiate(bytes, importObject)|instantiate(bytes)" id="dom-webassembly-instantiate"><code>instantiate(<var>bytes</var>, <var>importObject</var>, <var>options</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>stableBytes</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-get-buffer-source-copy" id="ref-for-dfn-get-buffer-source-copy②">copy of the bytes held by the buffer</a> <var>bytes</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#asynchronously-compile-a-webassembly-module" id="ref-for-asynchronously-compile-a-webassembly-module①">Asynchronously compile a WebAssembly module</a> from <var>stableBytes</var> using <var>options</var> and let <var>promiseOfModule</var> be the result.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#instantiate-a-promise-of-a-module" id="ref-for-instantiate-a-promise-of-a-module">Instantiate</a> <var>promiseOfModule</var> with imports <var>importObject</var> and return the result.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="instantiate(moduleObject, importObject)" data-algorithm-for="WebAssembly"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly" data-dfn-type="method" data-export data-lt="instantiate(moduleObject, importObject)|instantiate(moduleObject)" id="dom-webassembly-instantiate-moduleobject-importobject"><code>instantiate(<var>moduleObject</var>, <var>importObject</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#asynchronously-instantiate-a-webassembly-module" id="ref-for-asynchronously-instantiate-a-webassembly-module①">Asynchronously instantiate the WebAssembly module</a> <var>moduleObject</var> importing <var>importObject</var>, and return the result.</p> |
| </ol> |
| </div> |
| <p class="note" role="note"><span class="marker">Note:</span> A follow-on streaming API is documented in the <a href="https://webassembly.github.io/spec/web-api/index.html">WebAssembly Web API</a>.</p> |
| <p>The getter of the <dfn class="dfn-paneled idl-code" data-dfn-for="WebAssembly" data-dfn-type="attribute" data-export id="dom-webassembly-jstag"><code>JSTag</code></dfn> attribute of the <code class="idl"><a data-link-type="idl" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly">WebAssembly</a></code> Namespace, when invoked, performs the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>JSTagAddr</var> be the result of <a data-link-type="dfn" href="#get-the-javascript-exception-tag" id="ref-for-get-the-javascript-exception-tag">getting the JavaScript exception tag</a>.</p> |
| <li data-md> |
| <p>Let <var>JSTagObject</var> be the result of <a data-link-type="dfn" href="#create-a-tag-object" id="ref-for-create-a-tag-object①">creating a Tag object</a> from <var>JSTagAddr</var>.</p> |
| <li data-md> |
| <p>Return <var>JSTagObject</var>.</p> |
| </ol> |
| <h3 class="heading settled" data-level="5.1" id="modules"><span class="secno">5.1. </span><span class="content">Modules</span><a class="self-link" href="#modules"></a></h3> |
| <pre class="idl highlight def"><c- b>enum</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="enum" data-export id="enumdef-importexportkind"><code><c- g>ImportExportKind</c-></code></dfn> { |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ImportExportKind" data-dfn-type="enum-value" data-export id="dom-importexportkind-function"><code><c- s>"function"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ImportExportKind" data-dfn-type="enum-value" data-export id="dom-importexportkind-table"><code><c- s>"table"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ImportExportKind" data-dfn-type="enum-value" data-export id="dom-importexportkind-memory"><code><c- s>"memory"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ImportExportKind" data-dfn-type="enum-value" data-export id="dom-importexportkind-global"><code><c- s>"global"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ImportExportKind" data-dfn-type="enum-value" data-export id="dom-importexportkind-tag"><code><c- s>"tag"</c-></code></dfn> |
| }; |
| |
| <c- b>enum</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="enum" data-export id="enumdef-addresstype"><code><c- g>AddressType</c-></code></dfn> { |
| <dfn class="dfn-paneled idl-code" data-dfn-for="AddressType" data-dfn-type="enum-value" data-export id="dom-addresstype-i32"><code><c- s>"i32"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="AddressType" data-dfn-type="enum-value" data-export id="dom-addresstype-i64"><code><c- s>"i64"</c-></code></dfn>, |
| }; |
| |
| <c- b>typedef</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any"><c- b>any</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-type="typedef" data-export id="typedefdef-addressvalue"><code><c- g>AddressValue</c-></code></dfn>; |
| |
| <c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-moduleexportdescriptor"><code><c- g>ModuleExportDescriptor</c-></code></dfn> { |
| <c- b>required</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString" id="ref-for-idl-USVString②"><c- b>USVString</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="ModuleExportDescriptor" data-dfn-type="dict-member" data-export data-type="USVString" id="dom-moduleexportdescriptor-name"><code><c- g>name</c-></code></dfn>; |
| <c- b>required</c-> <a data-link-type="idl-name" href="#enumdef-importexportkind" id="ref-for-enumdef-importexportkind"><c- n>ImportExportKind</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="ModuleExportDescriptor" data-dfn-type="dict-member" data-export data-type="ImportExportKind" id="dom-moduleexportdescriptor-kind"><code><c- g>kind</c-></code></dfn>; |
| // Note: Other fields such as signature may be added in the future. |
| }; |
| |
| <c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-moduleimportdescriptor"><code><c- g>ModuleImportDescriptor</c-></code></dfn> { |
| <c- b>required</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString" id="ref-for-idl-USVString③"><c- b>USVString</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="ModuleImportDescriptor" data-dfn-type="dict-member" data-export data-type="USVString" id="dom-moduleimportdescriptor-module"><code><c- g>module</c-></code></dfn>; |
| <c- b>required</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString" id="ref-for-idl-USVString④"><c- b>USVString</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="ModuleImportDescriptor" data-dfn-type="dict-member" data-export data-type="USVString" id="dom-moduleimportdescriptor-name"><code><c- g>name</c-></code></dfn>; |
| <c- b>required</c-> <a data-link-type="idl-name" href="#enumdef-importexportkind" id="ref-for-enumdef-importexportkind①"><c- n>ImportExportKind</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="ModuleImportDescriptor" data-dfn-type="dict-member" data-export data-type="ImportExportKind" id="dom-moduleimportdescriptor-kind"><code><c- g>kind</c-></code></dfn>; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace" id="ref-for-LegacyNamespace"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly①"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="module"><code><c- g>Module</c-></code></dfn> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-module-module" id="ref-for-dom-module-module"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="https://webidl.spec.whatwg.org/#BufferSource" id="ref-for-BufferSource③"><c- n>BufferSource</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Module/Module(bytes, options), Module/constructor(bytes, options), Module/Module(bytes), Module/constructor(bytes)" data-dfn-type="argument" data-export id="dom-module-module-bytes-options-bytes"><code><c- g>bytes</c-></code></dfn>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-webassemblycompileoptions" id="ref-for-dictdef-webassemblycompileoptions④"><c- n>WebAssemblyCompileOptions</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Module/Module(bytes, options), Module/constructor(bytes, options), Module/Module(bytes), Module/constructor(bytes)" data-dfn-type="argument" data-export id="dom-module-module-bytes-options-options"><code><c- g>options</c-></code></dfn> = {}); |
| <c- b>static</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence" id="ref-for-idl-sequence①"><c- b>sequence</c-></a><<a data-link-type="idl-name" href="#dictdef-moduleexportdescriptor" id="ref-for-dictdef-moduleexportdescriptor"><c- n>ModuleExportDescriptor</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-module-exports" id="ref-for-dom-module-exports"><c- g>exports</c-></a>(<a data-link-type="idl-name" href="#module" id="ref-for-module⑦"><c- n>Module</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Module/exports(moduleObject)" data-dfn-type="argument" data-export id="dom-module-exports-moduleobject-moduleobject"><code><c- g>moduleObject</c-></code></dfn>); |
| <c- b>static</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence" id="ref-for-idl-sequence②"><c- b>sequence</c-></a><<a data-link-type="idl-name" href="#dictdef-moduleimportdescriptor" id="ref-for-dictdef-moduleimportdescriptor"><c- n>ModuleImportDescriptor</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-module-imports" id="ref-for-dom-module-imports"><c- g>imports</c-></a>(<a data-link-type="idl-name" href="#module" id="ref-for-module⑧"><c- n>Module</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Module/imports(moduleObject)" data-dfn-type="argument" data-export id="dom-module-imports-moduleobject-moduleobject"><code><c- g>moduleObject</c-></code></dfn>); |
| <c- b>static</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence" id="ref-for-idl-sequence③"><c- b>sequence</c-></a><<a class="idl-code" data-link-type="interface" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects"><c- b>ArrayBuffer</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-module-customsections" id="ref-for-dom-module-customsections"><c- g>customSections</c-></a>(<a data-link-type="idl-name" href="#module" id="ref-for-module⑨"><c- n>Module</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Module/customSections(moduleObject, sectionName)" data-dfn-type="argument" data-export id="dom-module-customsections-moduleobject-sectionname-moduleobject"><code><c- g>moduleObject</c-></code></dfn>, <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString" id="ref-for-idl-DOMString"><c- b>DOMString</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Module/customSections(moduleObject, sectionName)" data-dfn-type="argument" data-export id="dom-module-customsections-moduleobject-sectionname-sectionname"><code><c- g>sectionName</c-></code></dfn>); |
| }; |
| </pre> |
| <div class="algorithm" data-algorithm="string value of the extern type"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="string-value-of-the-extern-type">string value of the extern type</dfn> <var>type</var> is |
| |
| <ul> |
| <li data-md> |
| <p>"function" if <var>type</var> is of the form <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types①⓪">func</a> <var>functype</var></p> |
| <li data-md> |
| <p>"table" if <var>type</var> is of the form <a data-link-type="dfn" data-refhint-key="eb9c1b7f" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types①①">table</a> <var>tabletype</var></p> |
| <li data-md> |
| <p>"memory" if <var>type</var> is of the form <a data-link-type="dfn" data-refhint-key="2be47a22" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types①②">mem</a> <var>memtype</var></p> |
| <li data-md> |
| <p>"global" if <var>type</var> is of the form <a data-link-type="dfn" data-refhint-key="82295e1c" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types①③">global</a> <var>globaltype</var></p> |
| <li data-md> |
| <p>"tag" if <var>type</var> is of the form <a data-link-type="dfn" data-refhint-key="a5c9608b" href="https://webassembly.github.io/spec/core/syntax/types.html#external-types" id="ref-for-external-types①④">tag</a> <var>tag</var></p> |
| </ul> |
| </div> |
| <div class="algorithm" data-algorithm="exports(moduleObject)" data-algorithm-for="Module"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Module" data-dfn-type="method" data-export id="dom-module-exports"><code>exports(<var>moduleObject</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>module</var> be <var>moduleObject</var>.[[Module]].</p> |
| <li data-md> |
| <p>Let <var>exports</var> be « ».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate⑤">For each</a> (<var>name</var>, <var>type</var>) of <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-exports" id="ref-for-embed-module-exports①">module_exports</a>(<var>module</var>),</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>kind</var> be the <a data-link-type="dfn" href="#string-value-of-the-extern-type" id="ref-for-string-value-of-the-extern-type">string value of the extern type</a> <var>type</var>.</p> |
| <li data-md> |
| <p>Let <var>obj</var> be «[ "<code class="idl"><a data-link-type="idl" href="#dom-moduleexportdescriptor-name" id="ref-for-dom-moduleexportdescriptor-name">name</a></code>" → <var>name</var>, "<code class="idl"><a data-link-type="idl" href="#dom-moduleexportdescriptor-kind" id="ref-for-dom-moduleexportdescriptor-kind">kind</a></code>" → <var>kind</var> ]».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append⑤">Append</a> <var>obj</var> to <var>exports</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>exports</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="imports(moduleObject)" data-algorithm-for="Module"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Module" data-dfn-type="method" data-export id="dom-module-imports"><code>imports(<var>moduleObject</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>module</var> be <var>moduleObject</var>.[[Module]].</p> |
| <li data-md> |
| <p>Let <var>builtinSetNames</var> be <var>moduleObject</var>.[[BuiltinSets]].</p> |
| <li data-md> |
| <p>Let <var>importedStringModule</var> be <var>moduleObject</var>.[[ImportedStringModule]].</p> |
| <li data-md> |
| <p>Let <var>imports</var> be « ».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate⑥">For each</a> (<var>moduleName</var>, <var>name</var>, <var>type</var>) of <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-imports" id="ref-for-embed-module-imports③">module_imports</a>(<var>module</var>),</p> |
| <ol> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="#find-a-builtin" id="ref-for-find-a-builtin">find a builtin</a> for (<var>moduleName</var>, <var>name</var>, <var>type</var>) and <var>builtinSetNames</var> is not null, then <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#iteration-continue" id="ref-for-iteration-continue②">continue</a>.</p> |
| <li data-md> |
| <p>If <var>importedStringModule</var> is not null and <var>moduleName</var> equals <var>importedStringModule</var>, then <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#iteration-continue" id="ref-for-iteration-continue③">continue</a>.</p> |
| <li data-md> |
| <p>Let <var>kind</var> be the <a data-link-type="dfn" href="#string-value-of-the-extern-type" id="ref-for-string-value-of-the-extern-type①">string value of the extern type</a> <var>type</var>.</p> |
| <li data-md> |
| <p>Let <var>obj</var> be «[ "<code class="idl"><a data-link-type="idl" href="#dom-moduleimportdescriptor-module" id="ref-for-dom-moduleimportdescriptor-module">module</a></code>" → <var>moduleName</var>, "<code class="idl"><a data-link-type="idl" href="#dom-moduleimportdescriptor-name" id="ref-for-dom-moduleimportdescriptor-name">name</a></code>" → <var>name</var>, "<code class="idl"><a data-link-type="idl" href="#dom-moduleimportdescriptor-kind" id="ref-for-dom-moduleimportdescriptor-kind">kind</a></code>" → <var>kind</var> ]».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append⑥">Append</a> <var>obj</var> to <var>imports</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>imports</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="customSections(moduleObject, sectionName)" data-algorithm-for="Module"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Module" data-dfn-type="method" data-export id="dom-module-customsections"><code>customSections(<var>moduleObject</var>, <var>sectionName</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>bytes</var> be <var>moduleObject</var>.[[Bytes]].</p> |
| <li data-md> |
| <p>Let <var>customSections</var> be « ».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate⑦">For each</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/binary/modules.html#custom-section" id="ref-for-custom-section">custom section</a> <var>customSection</var> of <var>bytes</var>, interpreted according to the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/binary/modules.html#binary-module" id="ref-for-binary-module">module grammar</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>name</var> be the <code>name</code> of <var>customSection</var>, <a data-link-type="dfn" href="https://encoding.spec.whatwg.org/#utf-8-decode-without-bom-or-fail" id="ref-for-utf-8-decode-without-bom-or-fail">decoded as UTF-8</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>name</var> is not failure (<var>moduleObject</var>.[[Module]] is <a data-link-type="dfn" data-refhint-key="db25377b" href="https://webassembly.github.io/spec/core/valid/modules.html#valid-module" id="ref-for-valid-module①">valid</a>).</p> |
| <li data-md> |
| <p>If <var>name</var> equals <var>sectionName</var> as string values,</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append⑦">Append</a> a new <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects①">ArrayBuffer</a></code> containing a copy of the bytes in <var>bytes</var> for the range matched by this <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/binary/modules.html#binary-customsec" id="ref-for-binary-customsec">customsec</a> production to <var>customSections</var>.</p> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Return <var>customSections</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="Module(bytes, options)" data-algorithm-for="Module"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Module" data-dfn-type="constructor" data-export data-lt="Module(bytes, options)|constructor(bytes, options)|Module(bytes)|constructor(bytes)" id="dom-module-module"><code>Module(<var>bytes</var>, <var>options</var>)</code></dfn> constructor, when invoked, performs the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>stableBytes</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-get-buffer-source-copy" id="ref-for-dfn-get-buffer-source-copy③">copy of the bytes held by the buffer</a> <var>bytes</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#compile-a-webassembly-module" id="ref-for-compile-a-webassembly-module②">Compile the WebAssembly module</a> <var>stableBytes</var> and store the result as <var>module</var>.</p> |
| <li data-md> |
| <p>If <var>module</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error⑧">error</a>, throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-compileerror" id="ref-for-exceptiondef-compileerror②">CompileError</a></code> exception.</p> |
| <li data-md> |
| <p>Let <var>builtinSetNames</var> be <var>options</var>["builtins"].</p> |
| <li data-md> |
| <p>Let <var>importedStringModule</var> be <var>options</var>["importedStringConstants"].</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="#validate-builtins-and-imported-string-for-a-webassembly-module" id="ref-for-validate-builtins-and-imported-string-for-a-webassembly-module②">validating builtins and imported strings</a> for <var>module</var> with <var>builtinSetNames</var> and <var>importedStringModule</var> returns false, throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-compileerror" id="ref-for-exceptiondef-compileerror③">CompileError</a></code> exception.</p> |
| <li data-md> |
| <p>Set <strong>this</strong>.[[Module]] to <var>module</var>.</p> |
| <li data-md> |
| <p>Set <strong>this</strong>.[[Bytes]] to <var>stableBytes</var>.</p> |
| <li data-md> |
| <p>Set <strong>this</strong>.[[BuiltinSets]] to <var>builtinSetNames</var>.</p> |
| <li data-md> |
| <p>Set <strong>this</strong>.[[ImportedStringModule]] to <var>importedStringModule</var>.</p> |
| </ol> |
| <p class="note" role="note"><span class="marker">Note:</span> Some implementations enforce a size limitation on <var>bytes</var>. Use of this API is discouraged, in favor of asynchronous APIs.</p> |
| </div> |
| <h3 class="heading settled" data-level="5.2" id="instances"><span class="secno">5.2. </span><span class="content">Instances</span><a class="self-link" href="#instances"></a></h3> |
| <pre class="idl highlight def">[<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace" id="ref-for-LegacyNamespace①"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly②"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="instance"><code><c- g>Instance</c-></code></dfn> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-instance-instance" id="ref-for-dom-instance-instance"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#module" id="ref-for-module①⓪"><c- n>Module</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Instance/Instance(module, importObject), Instance/constructor(module, importObject), Instance/Instance(module), Instance/constructor(module)" data-dfn-type="argument" data-export id="dom-instance-instance-module-importobject-module"><code><c- g>module</c-></code></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-object" id="ref-for-idl-object②"><c- b>object</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Instance/Instance(module, importObject), Instance/constructor(module, importObject), Instance/Instance(module), Instance/constructor(module)" data-dfn-type="argument" data-export id="dom-instance-instance-module-importobject-importobject"><code><c- g>importObject</c-></code></dfn>); |
| <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-object" id="ref-for-idl-object③"><c- b>object</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="object" href="#dom-instance-exports" id="ref-for-dom-instance-exports"><c- g>exports</c-></a>; |
| }; |
| </pre> |
| <div class="algorithm" data-algorithm="Instance(module, importObject)" data-algorithm-for="Instance"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Instance" data-dfn-type="constructor" data-export data-lt="Instance(module, importObject)|constructor(module, importObject)|Instance(module)|constructor(module)" id="dom-instance-instance"><code>Instance(<var>module</var>, <var>importObject</var>)</code></dfn> constructor, when invoked, runs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>module</var> be <var>module</var>.[[Module]].</p> |
| <li data-md> |
| <p>Let <var>builtinSetNames</var> be <var>module</var>.[[BuiltinSets]].</p> |
| <li data-md> |
| <p>Let <var>importedStringModule</var> be <var>module</var>.[[ImportedStringModule]].</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#read-the-imports" id="ref-for-read-the-imports①">Read the imports</a> of <var>module</var> with imports <var>importObject</var>, <var>builtinSetNames</var>, and <var>importedStringModule</var>, and let <var>imports</var> be the result.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#instantiate-the-core-of-a-webassembly-module" id="ref-for-instantiate-the-core-of-a-webassembly-module②">Instantiate the core of a WebAssembly module</a> <var>module</var> with <var>imports</var>, and let <var>instance</var> be the result.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-an-instance-object" id="ref-for-initialize-an-instance-object①">Initialize</a> <strong>this</strong> from <var>module</var> and <var>instance</var>.</p> |
| </ol> |
| <p class="note" role="note"><span class="marker">Note:</span> The use of this synchronous API is discouraged, as some implementations sometimes do long-running compilation work when instantiating.</p> |
| </div> |
| <div class="algorithm" data-algorithm="exports" data-algorithm-for="Instance"> |
| The getter of the <dfn class="dfn-paneled idl-code" data-dfn-for="Instance" data-dfn-type="attribute" data-export id="dom-instance-exports"><code>exports</code></dfn> attribute of <code class="idl"><a data-link-type="idl" href="#instance" id="ref-for-instance③">Instance</a></code> returns <strong>this</strong>.[[Exports]]. |
| </div> |
| <h3 class="heading settled" data-level="5.3" id="memories"><span class="secno">5.3. </span><span class="content">Memories</span><a class="self-link" href="#memories"></a></h3> |
| <pre class="idl highlight def"><c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-memorydescriptor"><code><c- g>MemoryDescriptor</c-></code></dfn> { |
| <c- b>required</c-> <a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue"><c- n>AddressValue</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="MemoryDescriptor" data-dfn-type="dict-member" data-export data-type="AddressValue" id="dom-memorydescriptor-initial"><code><c- g>initial</c-></code></dfn>; |
| <a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue①"><c- n>AddressValue</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="MemoryDescriptor" data-dfn-type="dict-member" data-export data-type="AddressValue" id="dom-memorydescriptor-maximum"><code><c- g>maximum</c-></code></dfn>; |
| <a data-link-type="idl-name" href="#enumdef-addresstype" id="ref-for-enumdef-addresstype"><c- n>AddressType</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="MemoryDescriptor" data-dfn-type="dict-member" data-export data-type="AddressType" id="dom-memorydescriptor-address"><code><c- g>address</c-></code></dfn>; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace" id="ref-for-LegacyNamespace②"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly③"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="memory"><code><c- g>Memory</c-></code></dfn> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-memory-memory" id="ref-for-dom-memory-memory"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#dictdef-memorydescriptor" id="ref-for-dictdef-memorydescriptor"><c- n>MemoryDescriptor</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Memory/Memory(descriptor), Memory/constructor(descriptor)" data-dfn-type="argument" data-export id="dom-memory-memory-descriptor-descriptor"><code><c- g>descriptor</c-></code></dfn>); |
| <a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue②"><c- n>AddressValue</c-></a> <a class="idl-code" data-link-type="method" href="#dom-memory-grow" id="ref-for-dom-memory-grow"><c- g>grow</c-></a>(<a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue③"><c- n>AddressValue</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Memory/grow(delta)" data-dfn-type="argument" data-export id="dom-memory-grow-delta-delta"><code><c- g>delta</c-></code></dfn>); |
| <a class="idl-code" data-link-type="interface" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects②"><c- b>ArrayBuffer</c-></a> <a class="idl-code" data-link-type="method" href="#dom-memory-tofixedlengthbuffer" id="ref-for-dom-memory-tofixedlengthbuffer"><c- g>toFixedLengthBuffer</c-></a>(); |
| <a class="idl-code" data-link-type="interface" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects③"><c- b>ArrayBuffer</c-></a> <a class="idl-code" data-link-type="method" href="#dom-memory-toresizablebuffer" id="ref-for-dom-memory-toresizablebuffer"><c- g>toResizableBuffer</c-></a>(); |
| <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects④"><c- b>ArrayBuffer</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="ArrayBuffer" href="#dom-memory-buffer" id="ref-for-dom-memory-buffer"><c- g>buffer</c-></a>; |
| }; |
| </pre> |
| <p>A <code class="idl"><a data-link-type="idl" href="#memory" id="ref-for-memory③">Memory</a></code> object represents a single <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#memory-instances" id="ref-for-memory-instances①">memory instance</a> |
| which can be simultaneously referenced by multiple <code class="idl"><a data-link-type="idl" href="#instance" id="ref-for-instance④">Instance</a></code> objects. Each |
| <code class="idl"><a data-link-type="idl" href="#memory" id="ref-for-memory④">Memory</a></code> object has the following internal slots:</p> |
| <ul> |
| <li data-md> |
| <p>[[Memory]] : a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr" id="ref-for-syntax-memaddr①">memory address</a></p> |
| <li data-md> |
| <p>[[BufferObject]] : an <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects⑤">ArrayBuffer</a></code> whose <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-data-blocks" id="ref-for-sec-data-blocks①">Data Block</a> is <a data-link-type="dfn" href="#identified-with" id="ref-for-identified-with">identified with</a> the above memory address</p> |
| </ul> |
| <div class="algorithm" data-algorithm="create a fixed length memory buffer"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-a-fixed-length-memory-buffer">create a fixed length memory buffer</dfn> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr" id="ref-for-syntax-memaddr②">memory address</a> <var>memaddr</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>block</var> be a <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-data-blocks" id="ref-for-sec-data-blocks②">Data Block</a> which is <a data-link-type="dfn" href="#identified-with" id="ref-for-identified-with①">identified with</a> the underlying memory of <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Let <var>buffer</var> be a new <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects⑥">ArrayBuffer</a></code> with the internal slots [[ArrayBufferData]], [[ArrayBufferByteLength]], and [[ArrayBufferDetachKey]].</p> |
| <li data-md> |
| <p>Set <var>buffer</var>.[[ArrayBufferData]] to <var>block</var>.</p> |
| <li data-md> |
| <p>Set <var>buffer</var>.[[ArrayBufferByteLength]] to the length of <var>block</var>.</p> |
| <li data-md> |
| <p>Set <var>buffer</var>.[[ArrayBufferDetachKey]] to "WebAssembly.Memory".</p> |
| <li data-md> |
| <p>Return <var>buffer</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="create a resizable memory buffer"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-a-resizable-memory-buffer">create a resizable memory buffer</dfn> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr" id="ref-for-syntax-memaddr③">memory address</a> <var>memaddr</var> and a <var>maxsize</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>block</var> be a <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-data-blocks" id="ref-for-sec-data-blocks③">Data Block</a> which is <a data-link-type="dfn" href="#identified-with" id="ref-for-identified-with②">identified with</a> the underlying memory of <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Let <var>length</var> be the length of <var>block</var>.</p> |
| <li data-md> |
| <p>Let <var>buffer</var> be a new <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects⑦">ArrayBuffer</a></code> with the internal slots [[ArrayBufferData]], [[ArrayBufferByteLength]], [[ArrayBufferMaxByteLength]], and [[ArrayBufferDetachKey]].</p> |
| <li data-md> |
| <p>Set <var>buffer</var>.[[ArrayBufferData]] to <var>block</var>.</p> |
| <li data-md> |
| <p>Set <var>buffer</var>.[[ArrayBufferByteLength]] to <var>length</var>.</p> |
| <li data-md> |
| <p>Set <var>buffer</var>.[[ArrayBufferMaxByteLength]] is <var>maxsize</var>.</p> |
| <li data-md> |
| <p>Set <var>buffer</var>.[[ArrayBufferDetachKey]] to "WebAssembly.Memory".</p> |
| <li data-md> |
| <p>Return <var>buffer</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="initialize a memory object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="initialize-a-memory-object">initialize a memory object</dfn> <var>memory</var> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr" id="ref-for-syntax-memaddr④">memory address</a> <var>memaddr</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④">surrounding agent</a>’s associated <a data-link-type="dfn" href="#memory-object-cache" id="ref-for-memory-object-cache">Memory object cache</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>map</var>[<var>memaddr</var>] doesn’t <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists②">exist</a>.</p> |
| <li data-md> |
| <p>Let <var>buffer</var> be the result of <a data-link-type="dfn" href="#create-a-fixed-length-memory-buffer" id="ref-for-create-a-fixed-length-memory-buffer">creating a fixed length memory buffer</a> from <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Set <var>memory</var>.[[Memory]] to <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Set <var>memory</var>.[[BufferObject]] to <var>buffer</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set②">Set</a> <var>map</var>[<var>memaddr</var>] to <var>memory</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="create a memory object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-a-memory-object">create a memory object</dfn> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr" id="ref-for-syntax-memaddr⑤">memory address</a> <var>memaddr</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent⑤">surrounding agent</a>’s associated <a data-link-type="dfn" href="#memory-object-cache" id="ref-for-memory-object-cache①">Memory object cache</a>.</p> |
| <li data-md> |
| <p>If <var>map</var>[<var>memaddr</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists③">exists</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Return <var>map</var>[<var>memaddr</var>].</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>memory</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#new" id="ref-for-new①">new</a> <code class="idl"><a data-link-type="idl" href="#memory" id="ref-for-memory⑤">Memory</a></code>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-a-memory-object" id="ref-for-initialize-a-memory-object">Initialize</a> <var>memory</var> from <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Return <var>memory</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="Memory(descriptor)" data-algorithm-for="Memory"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Memory" data-dfn-type="constructor" data-export data-lt="Memory(descriptor)|constructor(descriptor)" id="dom-memory-memory"><code>Memory(<var>descriptor</var>)</code></dfn> constructor, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>If <var>descriptor</var>["address"] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists④">exists</a>, let <var>addrtype</var> be <var>descriptor</var>["address"]; otherwise, let <var>addrtype</var> be "i32".</p> |
| <li data-md> |
| <p>Let <var>initial</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑧">?</a> <a data-link-type="dfn" href="#addressvaluetou64" id="ref-for-addressvaluetou64">AddressValueToU64</a>(<var>descriptor</var>["initial"], <var>addrtype</var>).</p> |
| <li data-md> |
| <p>If <var>descriptor</var>["maximum"] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists⑤">exists</a>, let <var>maximum</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑨">?</a> <a data-link-type="dfn" href="#addressvaluetou64" id="ref-for-addressvaluetou64①">AddressValueToU64</a>(<var>descriptor</var>["maximum"], <var>addrtype</var>); otherwise, let <var>maximum</var> be empty.</p> |
| <li data-md> |
| <p>Let <var>memtype</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-memtype" id="ref-for-syntax-memtype">memory type</a> <var>addrtype</var> { <strong>min</strong> <var>initial</var>, <strong>max</strong> <var>maximum</var> }.</p> |
| <li data-md> |
| <p>If <var>memtype</var> is not <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/types.html#valid-memtype" id="ref-for-valid-memtype">valid</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror">RangeError</a></code> exception.</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent⑥">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store④">associated store</a>.</p> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>memaddr</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-alloc" id="ref-for-embed-mem-alloc">mem_alloc</a>(<var>store</var>, <var>memtype</var>). If allocation fails, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror①">RangeError</a></code> exception.</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent⑦">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store⑤">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-a-memory-object" id="ref-for-initialize-a-memory-object①">Initialize</a> <strong>this</strong> from <var>memaddr</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="refresh the Memory buffer"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="refresh-the-memory-buffer">refresh the Memory buffer</dfn> of <var>memaddr</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent⑧">surrounding agent</a>’s associated <a data-link-type="dfn" href="#memory-object-cache" id="ref-for-memory-object-cache②">Memory object cache</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>map</var>[<var>memaddr</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists⑥">exists</a>.</p> |
| <li data-md> |
| <p>Let <var>memory</var> be <var>map</var>[<var>memaddr</var>].</p> |
| <li data-md> |
| <p>Let <var>buffer</var> be <var>memory</var>.[[BufferObject]].</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://tc39.es/proposal-resizablearraybuffer/#sec-isfixedarraybuffer" id="ref-for-sec-isfixedarraybuffer">IsFixedLengthArrayBuffer</a>(<var>buffer</var>) is true,</p> |
| <ol> |
| <li data-md> |
| <p>Perform <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①⓪">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/structured-data.html#sec-detacharraybuffer" id="ref-for-sec-detacharraybuffer">DetachArrayBuffer</a>(<var>buffer</var>, "WebAssembly.Memory").</p> |
| <li data-md> |
| <p>Let <var>buffer</var> be the result of <a data-link-type="dfn" href="#create-a-fixed-length-memory-buffer" id="ref-for-create-a-fixed-length-memory-buffer①">creating a fixed length memory buffer</a> from <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Set <var>memory</var>.[[BufferObject]] to <var>buffer</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>block</var> be a <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-data-blocks" id="ref-for-sec-data-blocks④">Data Block</a> which is <a data-link-type="dfn" href="#identified-with" id="ref-for-identified-with③">identified with</a> the underlying memory of <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Set <var>buffer</var>.[[ArrayBufferData]] to <var>block</var>.</p> |
| <li data-md> |
| <p>Set <var>buffer</var>.[[ArrayBufferByteLength]] to the length of <var>block</var>.</p> |
| </ol> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="grow the memory buffer"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="grow-the-memory-buffer">grow the memory buffer</dfn> associated with a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr" id="ref-for-syntax-memaddr⑥">memory address</a> <var>memaddr</var> by <var>delta</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent⑨">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store⑥">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>ret</var> be the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-size" id="ref-for-embed-mem-size">mem_size</a>(<var>store</var>, <var>memaddr</var>).</p> |
| <li data-md> |
| <p>Let <var>store</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-grow" id="ref-for-embed-mem-grow">mem_grow</a>(<var>store</var>, <var>memaddr</var>, <var>delta</var>).</p> |
| <li data-md> |
| <p>If <var>store</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error⑨">error</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror②">RangeError</a></code> exception.</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①⓪">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store⑦">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#refresh-the-memory-buffer" id="ref-for-refresh-the-memory-buffer">Refresh the memory buffer</a> of <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Return <var>ret</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="dom-Memory-grow"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Memory" data-dfn-type="method" data-export id="dom-memory-grow"><code>grow(<var>delta</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>memaddr</var> be <strong>this</strong>.[[Memory]].</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①①">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store⑧">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>addrtype</var> be the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-addrtype" id="ref-for-syntax-addrtype">address type</a> in <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-type" id="ref-for-embed-mem-type">mem_type</a>(<var>store</var>, <var>memaddr</var>).</p> |
| <li data-md> |
| <p>Let <var>delta64</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①①">?</a> <a data-link-type="dfn" href="#addressvaluetou64" id="ref-for-addressvaluetou64②">AddressValueToU64</a>(<var>delta</var>, <var>addrtype</var>).</p> |
| <li data-md> |
| <p>Let <var>ret</var> be the result of <a data-link-type="dfn" href="#grow-the-memory-buffer" id="ref-for-grow-the-memory-buffer">growing the memory buffer</a> associated with <var>memaddr</var> by <var>delta64</var>.</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="#u64toaddressvalue" id="ref-for-u64toaddressvalue">U64ToAddressValue</a>(<var>ret</var>, <var>addrtype</var>).</p> |
| </ol> |
| </div> |
| <p>Immediately after a WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/instructions.html#exec-memory-grow" id="ref-for-exec-memory-grow">memory.grow</a> instruction executes, perform the following steps:</p> |
| <div class="algorithm" data-algorithm="memory.grow"> |
| <ol> |
| <li data-md> |
| <p>If the top of the stack is not <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values">i32.const</a> (−1),</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>frame</var> be the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/conventions.html#exec-notation-textual" id="ref-for-exec-notation-textual">current frame</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: due to validation, <var>frame</var>.<a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-frame" id="ref-for-syntax-frame">module</a>.<a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-moduleinst" id="ref-for-syntax-moduleinst">memaddrs</a>[0] exists.</p> |
| <li data-md> |
| <p>Let <var>memaddr</var> be the memory address <var>frame</var>.<a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-frame" id="ref-for-syntax-frame①">module</a>.<a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-moduleinst" id="ref-for-syntax-moduleinst①">memaddrs</a>[0].</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#refresh-the-memory-buffer" id="ref-for-refresh-the-memory-buffer①">Refresh the memory buffer</a> of <var>memaddr</var>.</p> |
| </ol> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="dom-Memory-toFixedLengthBuffer"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Memory" data-dfn-type="method" data-export id="dom-memory-tofixedlengthbuffer"><code>toFixedLengthBuffer()</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>buffer</var> be <strong>this</strong>.[[BufferObject]].</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://tc39.es/proposal-resizablearraybuffer/#sec-isfixedarraybuffer" id="ref-for-sec-isfixedarraybuffer①">IsFixedLengthArrayBuffer</a>(<var>buffer</var>) is true, return <var>buffer</var>.</p> |
| <li data-md> |
| <p>Let <var>memaddr</var> be <strong>this</strong>.[[Memory]].</p> |
| <li data-md> |
| <p>Let <var>fixedBuffer</var> be the result of <a data-link-type="dfn" href="#create-a-fixed-length-memory-buffer" id="ref-for-create-a-fixed-length-memory-buffer②">creating a fixed length memory buffer</a> from <var>memaddr</var>.</p> |
| <li data-md> |
| <p>Perform <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①②">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/structured-data.html#sec-detacharraybuffer" id="ref-for-sec-detacharraybuffer①">DetachArrayBuffer</a>(<var>buffer</var>, "WebAssembly.Memory").</p> |
| <li data-md> |
| <p>Set <strong>this</strong>.[[BufferObject]] to <var>fixedBuffer</var>.</p> |
| <li data-md> |
| <p>Return <var>fixedBuffer</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="dom-Memory-toResizableBuffer"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Memory" data-dfn-type="method" data-export id="dom-memory-toresizablebuffer"><code>toResizableBuffer()</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>memaddr</var> be <strong>this</strong>.[[Memory]].</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①②">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store⑨">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>memtype</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-type" id="ref-for-embed-mem-type①">mem_type</a>(<var>store</var>, <var>memaddr</var>).</p> |
| <li data-md> |
| <p>If <var>memtype</var> does not have a max,</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-throw" id="ref-for-dfn-throw">Throw</a> a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror③">TypeError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>buffer</var> be <strong>this</strong>.[[BufferObject]].</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://tc39.es/proposal-resizablearraybuffer/#sec-isfixedarraybuffer" id="ref-for-sec-isfixedarraybuffer②">IsFixedLengthArrayBuffer</a>(<var>buffer</var>) is false, return <var>buffer</var>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>memtype</var> has a max.</p> |
| <li data-md> |
| <p>Let <var>maxsize</var> be the max value in <var>memtype</var> * 65536.</p> |
| <li data-md> |
| <p>Let <var>resizableBuffer</var> be the result of <a data-link-type="dfn" href="#create-a-resizable-memory-buffer" id="ref-for-create-a-resizable-memory-buffer">creating a resizable memory buffer</a> from <var>memaddr</var> and <var>maxsize</var>.</p> |
| <li data-md> |
| <p>Perform <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①③">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/structured-data.html#sec-detacharraybuffer" id="ref-for-sec-detacharraybuffer②">DetachArrayBuffer</a>(<var>buffer</var>, "WebAssembly.Memory").</p> |
| <li data-md> |
| <p>Set <strong>this</strong>.[[BufferObject]] to <var>resizableBuffer</var>.</p> |
| <li data-md> |
| <p>Return <var>resizableBuffer</var>.</p> |
| </ol> |
| </div> |
| <p><code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects⑧">ArrayBuffer</a></code> objects returned by a <code class="idl"><a data-link-type="idl" href="#memory" id="ref-for-memory⑥">Memory</a></code> object must have a size that is a multiple of a WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#page-size" id="ref-for-page-size">page size</a> (the constant 65536). For this reason <a data-link-type="dfn" href="https://tc39.es/proposal-resizablearraybuffer/#sec-hostresizearraybuffer" id="ref-for-sec-hostresizearraybuffer">HostResizeArrayBuffer</a> is redefined as follows.</p> |
| <div class="algorithm" data-algorithm="abstract operation HostResizeArrayBuffer"> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-export id="HostResizeArrayBuffer">abstract operation <a data-link-type="dfn" href="https://tc39.es/proposal-resizablearraybuffer/#sec-hostresizearraybuffer" id="ref-for-sec-hostresizearraybuffer①">HostResizeArrayBuffer</a></dfn> takes arguments <var>buffer</var> (an <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects" id="ref-for-sec-arraybuffer-objects⑨">ArrayBuffer</a></code>) and <var>newLength</var>. It performs the following steps when called.</p> |
| <ol> |
| <li data-md> |
| <p>If <var>buffer</var>.[[ArrayBufferDetachKey]] is "WebAssembly.Memory",</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①③">surrounding agent</a>’s associated <a data-link-type="dfn" href="#memory-object-cache" id="ref-for-memory-object-cache③">Memory object cache</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>buffer</var> is the [[BufferObject]] of exactly one value in <var>map</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-iterate" id="ref-for-map-iterate">For each</a> <var>memaddr</var> → <var>mem</var> in <var>map</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-samevalue" id="ref-for-sec-samevalue">SameValue</a>(<var>mem</var>.[[BufferObject]], <var>buffer</var>) is true,</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>buffer</var>.[[ArrayBufferByteLength]] modulo 65536 is 0.</p> |
| <li data-md> |
| <p>Let <var>lengthDelta</var> be <var>newLength</var> - <var>buffer</var>.[[ArrayBufferByteLength]].</p> |
| <li data-md> |
| <p>If <var>lengthDelta</var> < 0 or <var>lengthDelta</var> modulo 65536 is not 0,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror③">RangeError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>delta</var> be <var>lengthDelta</var> ÷ 65536.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#grow-the-memory-buffer" id="ref-for-grow-the-memory-buffer①">Grow the memory buffer</a> associated with <var>memaddr</var> by <var>delta</var>.</p> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Return <emu-const>handled</emu-const>.</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise, return <emu-const>unhandled</emu-const>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="buffer" data-algorithm-for="Memory"> |
| The getter of the <dfn class="dfn-paneled idl-code" data-dfn-for="Memory" data-dfn-type="attribute" data-export id="dom-memory-buffer"><code>buffer</code></dfn> attribute of <code class="idl"><a data-link-type="idl" href="#memory" id="ref-for-memory⑦">Memory</a></code> returns <strong>this</strong>.[[BufferObject]]. |
| </div> |
| <h3 class="heading settled" data-level="5.4" id="tables"><span class="secno">5.4. </span><span class="content">Tables</span><a class="self-link" href="#tables"></a></h3> |
| <pre class="idl highlight def"><c- b>enum</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="enum" data-export id="enumdef-tablekind"><code><c- g>TableKind</c-></code></dfn> { |
| <dfn class="dfn-paneled idl-code" data-dfn-for="TableKind" data-dfn-type="enum-value" data-export id="dom-tablekind-externref"><code><c- s>"externref"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="TableKind" data-dfn-type="enum-value" data-export id="dom-tablekind-anyfunc"><code><c- s>"anyfunc"</c-></code></dfn>, |
| // Note: More values may be added in future iterations, |
| // e.g., typed function references, typed GC references |
| }; |
| |
| <c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-tabledescriptor"><code><c- g>TableDescriptor</c-></code></dfn> { |
| <c- b>required</c-> <a data-link-type="idl-name" href="#enumdef-tablekind" id="ref-for-enumdef-tablekind"><c- n>TableKind</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="TableDescriptor" data-dfn-type="dict-member" data-export data-type="TableKind" id="dom-tabledescriptor-element"><code><c- g>element</c-></code></dfn>; |
| <c- b>required</c-> <a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue④"><c- n>AddressValue</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="TableDescriptor" data-dfn-type="dict-member" data-export data-type="AddressValue" id="dom-tabledescriptor-initial"><code><c- g>initial</c-></code></dfn>; |
| <a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue⑤"><c- n>AddressValue</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="TableDescriptor" data-dfn-type="dict-member" data-export data-type="AddressValue" id="dom-tabledescriptor-maximum"><code><c- g>maximum</c-></code></dfn>; |
| <a data-link-type="idl-name" href="#enumdef-addresstype" id="ref-for-enumdef-addresstype①"><c- n>AddressType</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="TableDescriptor" data-dfn-type="dict-member" data-export data-type="AddressType" id="dom-tabledescriptor-address"><code><c- g>address</c-></code></dfn>; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace" id="ref-for-LegacyNamespace③"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly④"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="table"><code><c- g>Table</c-></code></dfn> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-table-table" id="ref-for-dom-table-table"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#dictdef-tabledescriptor" id="ref-for-dictdef-tabledescriptor"><c- n>TableDescriptor</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Table/Table(descriptor, value), Table/constructor(descriptor, value), Table/Table(descriptor), Table/constructor(descriptor)" data-dfn-type="argument" data-export id="dom-table-table-descriptor-value-descriptor"><code><c- g>descriptor</c-></code></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any①"><c- b>any</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Table/Table(descriptor, value), Table/constructor(descriptor, value), Table/Table(descriptor), Table/constructor(descriptor)" data-dfn-type="argument" data-export id="dom-table-table-descriptor-value-value"><code><c- g>value</c-></code></dfn>); |
| <a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue⑥"><c- n>AddressValue</c-></a> <a class="idl-code" data-link-type="method" href="#dom-table-grow" id="ref-for-dom-table-grow"><c- g>grow</c-></a>(<a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue⑦"><c- n>AddressValue</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Table/grow(delta, value), Table/grow(delta)" data-dfn-type="argument" data-export id="dom-table-grow-delta-value-delta"><code><c- g>delta</c-></code></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any②"><c- b>any</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Table/grow(delta, value), Table/grow(delta)" data-dfn-type="argument" data-export id="dom-table-grow-delta-value-value"><code><c- g>value</c-></code></dfn>); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any③"><c- b>any</c-></a> <a class="idl-code" data-link-type="method" href="#dom-table-get" id="ref-for-dom-table-get"><c- g>get</c-></a>(<a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue⑧"><c- n>AddressValue</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Table/get(index)" data-dfn-type="argument" data-export id="dom-table-get-index-index"><code><c- g>index</c-></code></dfn>); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined" id="ref-for-idl-undefined"><c- b>undefined</c-></a> <a class="idl-code" data-link-type="method" href="#dom-table-set" id="ref-for-dom-table-set"><c- g>set</c-></a>(<a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue⑨"><c- n>AddressValue</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Table/set(index, value), Table/set(index)" data-dfn-type="argument" data-export id="dom-table-set-index-value-index"><code><c- g>index</c-></code></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any④"><c- b>any</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Table/set(index, value), Table/set(index)" data-dfn-type="argument" data-export id="dom-table-set-index-value-value"><code><c- g>value</c-></code></dfn>); |
| <c- b>readonly</c-> <c- b>attribute</c-> <a data-link-type="idl-name" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue①⓪"><c- n>AddressValue</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="AddressValue" href="#dom-table-length" id="ref-for-dom-table-length"><c- g>length</c-></a>; |
| }; |
| </pre> |
| <p>A <code class="idl"><a data-link-type="idl" href="#table" id="ref-for-table②">Table</a></code> object represents a single <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#table-instances" id="ref-for-table-instances">table instance</a> which can be simultaneously referenced by |
| multiple <code class="idl"><a data-link-type="idl" href="#instance" id="ref-for-instance⑤">Instance</a></code> objects. |
| Each <code class="idl"><a data-link-type="idl" href="#table" id="ref-for-table③">Table</a></code> object has a [[Table]] internal slot, which is a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tableaddr" id="ref-for-syntax-tableaddr①">table address</a>.</p> |
| <div class="algorithm" data-algorithm="initialize a table object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="initialize-a-table-object">initialize a table object</dfn> <var>table</var> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tableaddr" id="ref-for-syntax-tableaddr②">table address</a> <var>tableaddr</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①④">surrounding agent</a>’s associated <a data-link-type="dfn" href="#table-object-cache" id="ref-for-table-object-cache">Table object cache</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>map</var>[<var>tableaddr</var>] doesn’t <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists⑦">exist</a>.</p> |
| <li data-md> |
| <p>Set <var>table</var>.[[Table]] to <var>tableaddr</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set③">Set</a> <var>map</var>[<var>tableaddr</var>] to <var>table</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="create a table object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-a-table-object">create a table object</dfn> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tableaddr" id="ref-for-syntax-tableaddr③">table address</a> <var>tableaddr</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①⑤">surrounding agent</a>’s associated <a data-link-type="dfn" href="#table-object-cache" id="ref-for-table-object-cache①">Table object cache</a>.</p> |
| <li data-md> |
| <p>If <var>map</var>[<var>tableaddr</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists⑧">exists</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Return <var>map</var>[<var>tableaddr</var>].</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>table</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#new" id="ref-for-new②">new</a> <code class="idl"><a data-link-type="idl" href="#table" id="ref-for-table④">Table</a></code>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-a-table-object" id="ref-for-initialize-a-table-object">Initialize</a> <var>table</var> from <var>tableaddr</var>.</p> |
| <li data-md> |
| <p>Return <var>table</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="Table(descriptor, value)" data-algorithm-for="Table"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Table" data-dfn-type="constructor" data-export data-lt="Table(descriptor, value)|constructor(descriptor, value)|Table(descriptor)|constructor(descriptor)" id="dom-table-table"><code>Table(<var>descriptor</var>, <var>value</var>)</code></dfn> constructor, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>elementtype</var> be <a data-link-type="dfn" href="#tovaluetype" id="ref-for-tovaluetype">ToValueType</a>(<var>descriptor</var>["element"]).</p> |
| <li data-md> |
| <p>If <var>elementtype</var> is not a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-reftype" id="ref-for-match-reftype">reftype</a>,</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-throw" id="ref-for-dfn-throw①">Throw</a> a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror④">TypeError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>descriptor</var>["address"] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists⑨">exists</a>, let <var>addrtype</var> be <var>descriptor</var>["address"]; otherwise, let <var>addrtype</var> be "i32".</p> |
| <li data-md> |
| <p>Let <var>initial</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①④">?</a> <a data-link-type="dfn" href="#addressvaluetou64" id="ref-for-addressvaluetou64③">AddressValueToU64</a>(<var>descriptor</var>["initial"], <var>addrtype</var>).</p> |
| <li data-md> |
| <p>If <var>descriptor</var>["maximum"] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①⓪">exists</a>, let <var>maximum</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①⑤">?</a> <a data-link-type="dfn" href="#addressvaluetou64" id="ref-for-addressvaluetou64④">AddressValueToU64</a>(<var>descriptor</var>["maximum"], <var>addrtype</var>); otherwise, let <var>maximum</var> be empty.</p> |
| <li data-md> |
| <p>Let <var>type</var> be the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-tabletype" id="ref-for-syntax-tabletype">table type</a> <var>addrtype</var> { <b><a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-limits" id="ref-for-syntax-limits">min</a></b> <var>initial</var>, <b><a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-limits" id="ref-for-syntax-limits①">max</a></b> <var>maximum</var> } <var>elementType</var>.</p> |
| <li data-md> |
| <p>If <var>type</var> is not <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/types.html#valid-tabletype" id="ref-for-valid-tabletype">valid</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror④">RangeError</a></code> exception.</p> |
| <li data-md> |
| <p>If <var>value</var> is missing,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>ref</var> be <a data-link-type="dfn" href="#defaultvalue" id="ref-for-defaultvalue">DefaultValue</a>(<var>elementtype</var>).</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>ref</var> is not <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①⓪">error</a>.</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>ref</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①⑥">?</a> <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue①">ToWebAssemblyValue</a>(<var>value</var>, <var>elementType</var>).</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①⑥">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①⓪">associated store</a>.</p> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>tableaddr</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-alloc" id="ref-for-embed-table-alloc">table_alloc</a>(<var>store</var>, <var>type</var>, <var>ref</var>). If allocation fails, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror⑤">RangeError</a></code> exception.</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①⑦">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①①">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-a-table-object" id="ref-for-initialize-a-table-object①">Initialize</a> <strong>this</strong> from <var>tableaddr</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="dom-Table-grow"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Table" data-dfn-type="method" data-export data-lt="grow(delta, value)|grow(delta)" id="dom-table-grow"><code>grow(<var>delta</var>, <var>value</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>tableaddr</var> be <strong>this</strong>.[[Table]].</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①⑧">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①②">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>initialSize</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-size" id="ref-for-embed-table-size">table_size</a>(<var>store</var>, <var>tableaddr</var>).</p> |
| <li data-md> |
| <p>Let (<var>addrtype</var>, <var>limits</var>, <var>elementtype</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-type" id="ref-for-embed-table-type">table_type</a>(<var>store</var>, <var>tableaddr</var>).</p> |
| <li data-md> |
| <p>Let <var>delta64</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①⑦">?</a> <a data-link-type="dfn" href="#addressvaluetou64" id="ref-for-addressvaluetou64⑤">AddressValueToU64</a>(<var>delta</var>, <var>addrtype</var>).</p> |
| <li data-md> |
| <p>If <var>value</var> is missing,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>ref</var> be <a data-link-type="dfn" href="#defaultvalue" id="ref-for-defaultvalue①">DefaultValue</a>(<var>elementtype</var>).</p> |
| <li data-md> |
| <p>If <var>ref</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①①">error</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror⑤">TypeError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>ref</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①⑧">?</a> <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue②">ToWebAssemblyValue</a>(<var>value</var>, <var>elementtype</var>).</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>result</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-grow" id="ref-for-embed-table-grow">table_grow</a>(<var>store</var>, <var>tableaddr</var>, <var>delta64</var>, <var>ref</var>).</p> |
| <li data-md> |
| <p>If <var>result</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①②">error</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror⑥">RangeError</a></code> exception.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> The above exception can happen due to either insufficient memory or an invalid size parameter.</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent①⑨">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①③">associated store</a> to <var>result</var>.</p> |
| <li data-md> |
| <p>Return <var>initialSize</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="length" data-algorithm-for="Table"> |
| |
| The getter of the <dfn class="dfn-paneled idl-code" data-dfn-for="Table" data-dfn-type="attribute" data-export id="dom-table-length"><code>length</code></dfn> attribute of <code class="idl"><a data-link-type="idl" href="#table" id="ref-for-table⑤">Table</a></code>, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>tableaddr</var> be <strong>this</strong>.[[Table]].</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②⓪">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①④">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>addrtype</var> be the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-addrtype" id="ref-for-syntax-addrtype①">address type</a> in <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-type" id="ref-for-embed-table-type①">table_type</a>(<var>store</var>, <var>tableaddr</var>).</p> |
| <li data-md> |
| <p>Let <var>length64</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-size" id="ref-for-embed-table-size①">table_size</a>(<var>store</var>, <var>tableaddr</var>).</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="#u64toaddressvalue" id="ref-for-u64toaddressvalue①">U64ToAddressValue</a>(<var>length64</var>, <var>addrtype</var>).</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="get(index)" data-algorithm-for="Table"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Table" data-dfn-type="method" data-export id="dom-table-get"><code>get(<var>index</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>tableaddr</var> be <strong>this</strong>.[[Table]].</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②①">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①⑤">associated store</a>.</p> |
| <li data-md> |
| <p>Let (<var>addrtype</var>, <var>limits</var>, <var>elementtype</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-type" id="ref-for-embed-table-type②">table_type</a>(<var>store</var>, <var>tableaddr</var>).</p> |
| <li data-md> |
| <p>If <var>elementtype</var> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-reftype" id="ref-for-match-reftype①">matches</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype">exnref</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror⑥">TypeError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>index64</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands①⑨">?</a> <a data-link-type="dfn" href="#addressvaluetou64" id="ref-for-addressvaluetou64⑥">AddressValueToU64</a>(<var>index</var>, <var>addrtype</var>).</p> |
| <li data-md> |
| <p>Let <var>result</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-read" id="ref-for-embed-table-read">table_read</a>(<var>store</var>, <var>tableaddr</var>, <var>index64</var>).</p> |
| <li data-md> |
| <p>If <var>result</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①③">error</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror⑦">RangeError</a></code> exception.</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue">ToJSValue</a>(<var>result</var>).</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="set(index, value)" data-algorithm-for="Table"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Table" data-dfn-type="method" data-export data-lt="set(index, value)|set(index)" id="dom-table-set"><code>set(<var>index</var>, <var>value</var>)</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>tableaddr</var> be <strong>this</strong>.[[Table]].</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②②">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①⑥">associated store</a>.</p> |
| <li data-md> |
| <p>Let (<var>addrtype</var>, <var>limits</var>, <var>elementtype</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-type" id="ref-for-embed-table-type③">table_type</a>(<var>store</var>, <var>tableaddr</var>).</p> |
| <li data-md> |
| <p>If <var>elementtype</var> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-reftype" id="ref-for-match-reftype②">matches</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①">exnref</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror⑦">TypeError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>index64</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②⓪">?</a> <a data-link-type="dfn" href="#addressvaluetou64" id="ref-for-addressvaluetou64⑦">AddressValueToU64</a>(<var>index</var>, <var>addrtype</var>).</p> |
| <li data-md> |
| <p>If <var>value</var> is missing,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>ref</var> be <a data-link-type="dfn" href="#defaultvalue" id="ref-for-defaultvalue②">DefaultValue</a>(<var>elementtype</var>).</p> |
| <li data-md> |
| <p>If <var>ref</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①④">error</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror⑧">TypeError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>ref</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②①">?</a> <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue③">ToWebAssemblyValue</a>(<var>value</var>, <var>elementtype</var>).</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>store</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-write" id="ref-for-embed-table-write">table_write</a>(<var>store</var>, <var>tableaddr</var>, <var>index64</var>, <var>ref</var>).</p> |
| <li data-md> |
| <p>If <var>store</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①⑤">error</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror⑧">RangeError</a></code> exception.</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②③">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①⑦">associated store</a> to <var>store</var>.</p> |
| </ol> |
| </div> |
| <h3 class="heading settled" data-level="5.5" id="globals"><span class="secno">5.5. </span><span class="content">Globals</span><a class="self-link" href="#globals"></a></h3> |
| <pre class="idl highlight def"><c- b>enum</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="enum" data-export id="enumdef-valuetype"><code><c- g>ValueType</c-></code></dfn> { |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ValueType" data-dfn-type="enum-value" data-export id="dom-valuetype-i32"><code><c- s>"i32"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ValueType" data-dfn-type="enum-value" data-export id="dom-valuetype-i64"><code><c- s>"i64"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ValueType" data-dfn-type="enum-value" data-export id="dom-valuetype-f32"><code><c- s>"f32"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ValueType" data-dfn-type="enum-value" data-export id="dom-valuetype-f64"><code><c- s>"f64"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ValueType" data-dfn-type="enum-value" data-export id="dom-valuetype-v128"><code><c- s>"v128"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ValueType" data-dfn-type="enum-value" data-export id="dom-valuetype-externref"><code><c- s>"externref"</c-></code></dfn>, |
| <dfn class="dfn-paneled idl-code" data-dfn-for="ValueType" data-dfn-type="enum-value" data-export id="dom-valuetype-anyfunc"><code><c- s>"anyfunc"</c-></code></dfn>, |
| }; |
| </pre> |
| <p class="note" role="note"><span class="marker">Note:</span> this type may be extended with additional cases in future versions of WebAssembly.</p> |
| <pre class="idl highlight def"><c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-globaldescriptor"><code><c- g>GlobalDescriptor</c-></code></dfn> { |
| <c- b>required</c-> <a data-link-type="idl-name" href="#enumdef-valuetype" id="ref-for-enumdef-valuetype"><c- n>ValueType</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="GlobalDescriptor" data-dfn-type="dict-member" data-export data-type="ValueType" id="dom-globaldescriptor-value"><code><c- g>value</c-></code></dfn>; |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-boolean" id="ref-for-idl-boolean①"><c- b>boolean</c-></a> <dfn class="dfn-paneled idl-code" data-default="false" data-dfn-for="GlobalDescriptor" data-dfn-type="dict-member" data-export data-type="boolean" id="dom-globaldescriptor-mutable"><code><c- g>mutable</c-></code></dfn> = <c- b>false</c->; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace" id="ref-for-LegacyNamespace④"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly⑤"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="global"><code><c- g>Global</c-></code></dfn> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-global-global" id="ref-for-dom-global-global"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#dictdef-globaldescriptor" id="ref-for-dictdef-globaldescriptor"><c- n>GlobalDescriptor</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Global/Global(descriptor, v), Global/constructor(descriptor, v), Global/Global(descriptor), Global/constructor(descriptor)" data-dfn-type="argument" data-export id="dom-global-global-descriptor-v-descriptor"><code><c- g>descriptor</c-></code></dfn>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any⑤"><c- b>any</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Global/Global(descriptor, v), Global/constructor(descriptor, v), Global/Global(descriptor), Global/constructor(descriptor)" data-dfn-type="argument" data-export id="dom-global-global-descriptor-v-v"><code><c- g>v</c-></code></dfn>); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any⑥"><c- b>any</c-></a> <a class="idl-code" data-link-type="method" href="#dom-global-valueof" id="ref-for-dom-global-valueof"><c- g>valueOf</c-></a>(); |
| <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any⑦"><c- b>any</c-></a> <a class="idl-code" data-link-type="attribute" data-type="any" href="#dom-global-value" id="ref-for-dom-global-value"><c- g>value</c-></a>; |
| }; |
| </pre> |
| <p>A <code class="idl"><a data-link-type="idl" href="#global" id="ref-for-global②">Global</a></code> object represents a single <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#global-instances" id="ref-for-global-instances">global instance</a> |
| which can be simultaneously referenced by multiple <code class="idl"><a data-link-type="idl" href="#instance" id="ref-for-instance⑥">Instance</a></code> objects. Each |
| <code class="idl"><a data-link-type="idl" href="#global" id="ref-for-global③">Global</a></code> object has one internal slot:</p> |
| <ul> |
| <li data-md> |
| <p>[[Global]] : a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-globaladdr" id="ref-for-syntax-globaladdr①">global address</a></p> |
| </ul> |
| <div class="algorithm" data-algorithm="initialize a global object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="initialize-a-global-object">initialize a global object</dfn> <var>global</var> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-globaladdr" id="ref-for-syntax-globaladdr②">global address</a> <var>globaladdr</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②④">surrounding agent</a>’s associated <a data-link-type="dfn" href="#global-object-cache" id="ref-for-global-object-cache">Global object cache</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>map</var>[<var>globaladdr</var>] doesn’t <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①①">exist</a>.</p> |
| <li data-md> |
| <p>Set <var>global</var>.[[Global]] to <var>globaladdr</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set④">Set</a> <var>map</var>[<var>globaladdr</var>] to <var>global</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="create a global object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-a-global-object">create a global object</dfn> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-globaladdr" id="ref-for-syntax-globaladdr③">global address</a> <var>globaladdr</var>, perform the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②⑤">surrounding agent</a>’s associated <a data-link-type="dfn" href="#global-object-cache" id="ref-for-global-object-cache①">Global object cache</a>.</p> |
| <li data-md> |
| <p>If <var>map</var>[<var>globaladdr</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①②">exists</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Return <var>map</var>[<var>globaladdr</var>].</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>global</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#new" id="ref-for-new③">new</a> <code class="idl"><a data-link-type="idl" href="#global" id="ref-for-global④">Global</a></code>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-a-global-object" id="ref-for-initialize-a-global-object">Initialize</a> <var>global</var> from <var>globaladdr</var>.</p> |
| <li data-md> |
| <p>Return <var>global</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="ToValueType"> |
| |
| The algorithm <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="tovaluetype">ToValueType</dfn>(<var>s</var>) performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>If <var>s</var> equals "i32", return <a data-link-type="dfn" data-refhint-key="1eccdce5" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype④">i32</a>.</p> |
| <li data-md> |
| <p>If <var>s</var> equals "i64", return <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype⑤">i64</a>.</p> |
| <li data-md> |
| <p>If <var>s</var> equals "f32", return <a data-link-type="dfn" data-refhint-key="a4646532" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype⑥">f32</a>.</p> |
| <li data-md> |
| <p>If <var>s</var> equals "f64", return <a data-link-type="dfn" data-refhint-key="487b76fe" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype⑦">f64</a>.</p> |
| <li data-md> |
| <p>If <var>s</var> equals "v128", return <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types①">v128</a>.</p> |
| <li data-md> |
| <p>If <var>s</var> equals "anyfunc", return <a data-link-type="dfn" data-refhint-key="706a103c" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype②">funcref</a>.</p> |
| <li data-md> |
| <p>If <var>s</var> equals "externref", return <a data-link-type="dfn" data-refhint-key="92193adb" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype③">externref</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: This step is not reached.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="DefaultValue"> |
| |
| The algorithm <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="defaultvalue">DefaultValue</dfn>(<var>valuetype</var>) performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>If <var>valuetype</var> equals <a data-link-type="dfn" data-refhint-key="92193adb" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype④">externref</a>, return <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue④">ToWebAssemblyValue</a>(undefined, <var>valuetype</var>).</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-val-default" id="ref-for-embed-val-default">val_default</a>(<var>valuetype</var>).</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="Global(descriptor, v)" data-algorithm-for="Global"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Global" data-dfn-type="constructor" data-export data-lt="Global(descriptor, v)|constructor(descriptor, v)|Global(descriptor)|constructor(descriptor)" id="dom-global-global"><code>Global(<var>descriptor</var>, <var>v</var>)</code></dfn> constructor, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>mutable</var> be <var>descriptor</var>["mutable"].</p> |
| <li data-md> |
| <p>Let <var>valuetype</var> be <a data-link-type="dfn" href="#tovaluetype" id="ref-for-tovaluetype①">ToValueType</a>(<var>descriptor</var>["value"]).</p> |
| <li data-md> |
| <p>If <var>valuetype</var> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-valtype" id="ref-for-match-valtype">matches</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types②">v128</a> or <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype⑤">exnref</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror⑨">TypeError</a></code> exception.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>v</var> is missing,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>value</var> be <a data-link-type="dfn" href="#defaultvalue" id="ref-for-defaultvalue③">DefaultValue</a>(<var>valuetype</var>).</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>value</var> is not <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①⑥">error</a>.</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>value</var> be <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue⑤">ToWebAssemblyValue</a>(<var>v</var>, <var>valuetype</var>).</p> |
| </ol> |
| <li data-md> |
| <p>If <var>mutable</var> is true, let <var>globaltype</var> be <a data-link-type="dfn" data-refhint-key="e638887d" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut" id="ref-for-syntax-mut①">var</a> <var>valuetype</var>; otherwise, let <var>globaltype</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut" id="ref-for-syntax-mut②">const</a> <var>valuetype</var>.</p> |
| <li data-md> |
| <p>Let <var>store</var> be the current agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①⑧">associated store</a>.</p> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>globaladdr</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-alloc" id="ref-for-embed-global-alloc①">global_alloc</a>(<var>store</var>, <var>globaltype</var>, <var>value</var>). </p> |
| <li data-md> |
| <p>Set the current agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store①⑨">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-a-global-object" id="ref-for-initialize-a-global-object①">Initialize</a> <strong>this</strong> from <var>globaladdr</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="GetGlobalValue"> |
| |
| The algorithm <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="getglobalvalue">GetGlobalValue</dfn>(<code class="idl"><a data-link-type="idl" href="#global" id="ref-for-global⑤">Global</a></code> <var>global</var>) performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>store</var> be the current agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②⓪">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>globaladdr</var> be <var>global</var>.[[Global]].</p> |
| <li data-md> |
| <p>Let <var>globaltype</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-type" id="ref-for-embed-global-type">global_type</a>(<var>store</var>, <var>globaladdr</var>).</p> |
| <li data-md> |
| <p>If <var>globaltype</var> is of the form <var>mut</var> <var>valuetype</var> where <var>valuetype</var> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-valtype" id="ref-for-match-valtype①">matches</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types③">v128</a> or <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype⑥">exnref</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①⓪">TypeError</a></code>.</p> |
| <li data-md> |
| <p>Let <var>value</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-read" id="ref-for-embed-global-read">global_read</a>(<var>store</var>, <var>globaladdr</var>).</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue①">ToJSValue</a>(<var>value</var>).</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="value" data-algorithm-for="Global"> |
| |
| The getter of the <dfn class="dfn-paneled idl-code" data-dfn-for="Global" data-dfn-type="attribute" data-export id="dom-global-value"><code>value</code></dfn> attribute of <code class="idl"><a data-link-type="idl" href="#global" id="ref-for-global⑥">Global</a></code>, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="#getglobalvalue" id="ref-for-getglobalvalue">GetGlobalValue</a>(<strong>this</strong>).</p> |
| </ol> |
| <p>The setter of the value attribute of <code class="idl"><a data-link-type="idl" href="#global" id="ref-for-global⑦">Global</a></code>, when invoked, performs the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>store</var> be the current agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②①">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>globaladdr</var> be <strong>this</strong>.[[Global]].</p> |
| <li data-md> |
| <p>Let <var>mut</var> <var>valuetype</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-type" id="ref-for-embed-global-type①">global_type</a>(<var>store</var>, <var>globaladdr</var>).</p> |
| <li data-md> |
| <p>If <var>valuetype</var> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-valtype" id="ref-for-match-valtype②">matches</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types④">v128</a> or <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype⑦">exnref</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①①">TypeError</a></code>.</p> |
| <li data-md> |
| <p>If <var>mut</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut" id="ref-for-syntax-mut③">const</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①②">TypeError</a></code>.</p> |
| <li data-md> |
| <p>Let <var>value</var> be <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue⑥">ToWebAssemblyValue</a>(<strong>the given value</strong>, <var>valuetype</var>).</p> |
| <li data-md> |
| <p>Let <var>store</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-write" id="ref-for-embed-global-write">global_write</a>(<var>store</var>, <var>globaladdr</var>, <var>value</var>).</p> |
| <li data-md> |
| <p>If <var>store</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①⑦">error</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror⑨">RangeError</a></code> exception.</p> |
| <li data-md> |
| <p>Set the current agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②②">associated store</a> to <var>store</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="valueOf()" data-algorithm-for="Global"> |
| |
| The <dfn class="dfn-paneled idl-code" data-dfn-for="Global" data-dfn-type="method" data-export id="dom-global-valueof"><code>valueOf()</code></dfn> method, when invoked, performs the following steps: |
| |
| <ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="#getglobalvalue" id="ref-for-getglobalvalue①">GetGlobalValue</a>(<strong>this</strong>).</p> |
| </ol> |
| </div> |
| <h3 class="heading settled" data-level="5.6" id="exported-function-exotic-objects"><span class="secno">5.6. </span><span class="content">Exported Functions</span><a class="self-link" href="#exported-function-exotic-objects"></a></h3> |
| <p>A WebAssembly function is made available in JavaScript as an <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="exported-function">Exported Function</dfn>. |
| Exported Functions are <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-built-in-function-objects" id="ref-for-sec-built-in-function-objects">Built-in Function Objects</a> which are not constructors, and which have a [[FunctionAddress]] internal slot. |
| This slot holds a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-funcaddr" id="ref-for-syntax-funcaddr①">function address</a> relative to the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②⑥">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②③">associated store</a>.</p> |
| <div class="algorithm" data-algorithm="name of the WebAssembly function"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="name-of-the-webassembly-function">name of the WebAssembly function</dfn> <var>funcaddr</var> is found by performing the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②⑦">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②④">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>funcinst</var> be <var>store</var>.funcs[<var>funcaddr</var>].</p> |
| <li data-md> |
| <p>If <var>funcinst</var> is of the form {type <var>functype</var>, hostcode <var>hostfunc</var>},</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>hostfunc</var> is a JavaScript object and <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iscallable" id="ref-for-sec-iscallable①">IsCallable</a>(<var>hostfunc</var>) is true.</p> |
| <li data-md> |
| <p>Let <var>index</var> be the <a data-link-type="dfn" href="#index-of-the-host-function" id="ref-for-index-of-the-host-function">index of the host function</a> <var>funcaddr</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>moduleinst</var> be <var>funcinst</var>.module.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>funcaddr</var> is contained in <var>moduleinst</var>.funcaddrs.</p> |
| <li data-md> |
| <p>Let <var>index</var> be the index of <var>moduleinst</var>.funcaddrs where <var>funcaddr</var> is found.</p> |
| </ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②②">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tostring" id="ref-for-sec-tostring">ToString</a>(<var>index</var>).</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="a new Exported Function"> |
| |
| To create <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="a-new-exported-function">a new Exported Function</dfn> from a WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-funcaddr" id="ref-for-syntax-funcaddr②">function address</a> <var>funcaddr</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②⑧">surrounding agent</a>’s associated <a data-link-type="dfn" href="#exported-function-cache" id="ref-for-exported-function-cache">Exported Function cache</a>.</p> |
| <li data-md> |
| <p>If <var>map</var>[<var>funcaddr</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①③">exists</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Return <var>map</var>[<var>funcaddr</var>].</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>steps</var> be "<a data-link-type="dfn" href="#call-an-exported-function" id="ref-for-call-an-exported-function">call the Exported Function</a> <var>funcaddr</var> with arguments."</p> |
| <li data-md> |
| <p>Let <var>realm</var> be the <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#current-realm" id="ref-for-current-realm">current Realm</a>.</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent②⑨">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②⑤">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>functype</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-type" id="ref-for-embed-func-type">func_type</a>(<var>store</var>, <var>funcaddr</var>).</p> |
| <li data-md> |
| <p>Let [<var>paramTypes</var>] → [<var>resultTypes</var>] be <var>functype</var>.</p> |
| <li data-md> |
| <p>Let <var>arity</var> be <var>paramTypes</var>’s <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-size" id="ref-for-list-size">size</a>.</p> |
| <li data-md> |
| <p>Let <var>name</var> be the <a data-link-type="dfn" href="#name-of-the-webassembly-function" id="ref-for-name-of-the-webassembly-function">name of the WebAssembly function</a> <var>funcaddr</var>.</p> |
| <li data-md> |
| <p>Let <var>function</var> be <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②③">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-createbuiltinfunction" id="ref-for-sec-createbuiltinfunction">CreateBuiltinFunction</a>(<var>steps</var>, <var>arity</var>, <var>name</var>, « [[FunctionAddress]] », <var>realm</var>).</p> |
| <li data-md> |
| <p>Set <var>function</var>.[[FunctionAddress]] to <var>funcaddr</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set⑤">Set</a> <var>map</var>[<var>funcaddr</var>] to <var>function</var>.</p> |
| <li data-md> |
| <p>Return <var>function</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="call an Exported Function"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="call-an-exported-function">call an Exported Function</dfn> with <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-funcaddr" id="ref-for-syntax-funcaddr③">function address</a> <var>funcaddr</var> and a <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list" id="ref-for-list①">list</a> of JavaScript arguments <var>argValues</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③⓪">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②⑥">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>functype</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-type" id="ref-for-embed-func-type①">func_type</a>(<var>store</var>, <var>funcaddr</var>).</p> |
| <li data-md> |
| <p>Let [<var>parameters</var>] → [<var>results</var>] be <var>functype</var>.</p> |
| <li data-md> |
| <p>If any type in <var>parameters</var> or <var>results</var> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-valtype" id="ref-for-match-valtype③">matches</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types⑤">v128</a> or <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype⑧">exnref</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①③">TypeError</a></code>.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> the above error is thrown each time the [[Call]] method is invoked.</p> |
| <li data-md> |
| <p>Let <var>args</var> be « ».</p> |
| <li data-md> |
| <p>Let <var>i</var> be 0.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate⑧">For each</a> <var>t</var> of <var>parameters</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>argValues</var>’s <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-size" id="ref-for-list-size①">size</a> > <var>i</var>, let <var>arg</var> be <var>argValues</var>[<var>i</var>].</p> |
| <li data-md> |
| <p>Otherwise, let <var>arg</var> be undefined.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append⑧">Append</a> <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue⑦">ToWebAssemblyValue</a>(<var>arg</var>, <var>t</var>) to <var>args</var>.</p> |
| <li data-md> |
| <p>Set <var>i</var> to <var>i</var> + 1.</p> |
| </ol> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>ret</var>) be the result of <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-invoke" id="ref-for-embed-func-invoke">func_invoke</a>(<var>store</var>, <var>funcaddr</var>, <var>args</var>).</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③①">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②⑦">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p>If <var>ret</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error" id="ref-for-embed-error①⑧">error</a>, throw an exception. This exception should be a WebAssembly <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror①">RuntimeError</a></code> exception, unless otherwise indicated by <a href="#errors">the WebAssembly error mapping</a>.</p> |
| <li data-md> |
| <p>If <var>ret</var> is <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-throw" id="ref-for-dfn-throw②">THROW</a> <a data-link-type="dfn" data-refhint-key="b0f69a43" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①">ref.exn</a> <var>exnaddr</var>, then</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>tagaddr</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-tag" id="ref-for-embed-exn-tag">exn_tag</a>(<var>store</var>, <var>exnaddr</var>).</p> |
| <li data-md> |
| <p>Let <var>payload</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-read" id="ref-for-embed-exn-read">exn_read</a>(<var>store</var>, <var>exnaddr</var>).</p> |
| <li data-md> |
| <p>Let <var>jsTagAddr</var> be the result of <a data-link-type="dfn" href="#get-the-javascript-exception-tag" id="ref-for-get-the-javascript-exception-tag①">getting the JavaScript exception tag</a>.</p> |
| <li data-md> |
| <p>If <var>tagaddr</var> is equal to <var>jsTagAddr</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw the result of <a data-link-type="dfn" href="#retrieving-a-host-value" id="ref-for-retrieving-a-host-value">retrieving a host value</a> from <var>payload</var>[0].</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>exception</var> be <a data-link-type="dfn" href="#create-an-exception-object" id="ref-for-create-an-exception-object">a new Exception</a> created from <var>exnaddr</var>.</p> |
| <li data-md> |
| <p>Throw <var>exception</var>.</p> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Let <var>outArity</var> be the <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-size" id="ref-for-list-size②">size</a> of <var>ret</var>.</p> |
| <li data-md> |
| <p>If <var>outArity</var> is 0, return undefined.</p> |
| <li data-md> |
| <p>Otherwise, if <var>outArity</var> is 1, return <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue②">ToJSValue</a>(<var>ret</var>[0]).</p> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>values</var> be « ».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate⑨">For each</a> <var>r</var> of <var>ret</var>,</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append⑨">Append</a> <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue③">ToJSValue</a>(<var>r</var>) to <var>values</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Return <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createarrayfromlist" id="ref-for-sec-createarrayfromlist">CreateArrayFromList</a>(<var>values</var>).</p> |
| </ol> |
| </ol> |
| </div> |
| <p class="note" role="note"><span class="marker">Note:</span> <a data-link-type="dfn" href="#call-an-exported-function" id="ref-for-call-an-exported-function①">Calling an Exported Function</a> executes in the [[Realm]] of the callee Exported Function, as per the definition of <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-built-in-function-objects" id="ref-for-sec-built-in-function-objects①">built-in function objects</a>.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> Exported Functions do not have a [[Construct]] method and thus it is not possible to call one with the <code>new</code> operator.</p> |
| <div class="algorithm" data-algorithm="run a host function"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="run-a-host-function">run a host function</dfn> from the JavaScript object <var>func</var>, type <var>functype</var>, and <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list" id="ref-for-list②">list</a> of <a data-link-type="dfn" data-refhint-key="8390efce" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②">WebAssembly values</a> <var>arguments</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let [<var>parameters</var>] → [<var>results</var>] be <var>functype</var>.</p> |
| <li data-md> |
| <p>If any type in <var>parameters</var> or <var>results</var> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-valtype" id="ref-for-match-valtype④">matches</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types⑥">v128</a> or <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype⑨">exnref</a>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①④">TypeError</a></code>.</p> |
| <li data-md> |
| <p>Let <var>jsArguments</var> be « ».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate①⓪">For each</a> <var>arg</var> of <var>arguments</var>,</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append①⓪">Append</a> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②④">!</a> <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue④">ToJSValue</a>(<var>arg</var>) to <var>jsArguments</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>ret</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②⑤">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call" id="ref-for-sec-call">Call</a>(<var>func</var>, undefined, <var>jsArguments</var>).</p> |
| <li data-md> |
| <p>Let <var>resultsSize</var> be <var>results</var>’s <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-size" id="ref-for-list-size③">size</a>.</p> |
| <li data-md> |
| <p>If <var>resultsSize</var> is 0, return « ».</p> |
| <li data-md> |
| <p>Otherwise, if <var>resultsSize</var> is 1, return « <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②⑥">?</a> <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue⑧">ToWebAssemblyValue</a>(<var>ret</var>, <var>results</var>[0]) ».</p> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>method</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②⑦">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-getmethod" id="ref-for-sec-getmethod">GetMethod</a>(<var>ret</var>, <code class="idl"><a data-link-type="idl" href="https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-well-known-symbols" id="ref-for-sec-well-known-symbols">%Symbol.iterator%</a></code>).</p> |
| <li data-md> |
| <p>If <var>method</var> is undefined, <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-throw" id="ref-for-dfn-throw③">throw</a> a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①⑤">TypeError</a></code>.</p> |
| <li data-md> |
| <p>Let <var>values</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②⑧">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iteratortolist" id="ref-for-sec-iteratortolist">IteratorToList</a>(<a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands②⑨">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-getiteratorfrommethod" id="ref-for-sec-getiteratorfrommethod">GetIteratorFromMethod</a>(<var>ret</var>, <var>method</var>)).</p> |
| <li data-md> |
| <p>Let <var>wasmValues</var> be a new, empty <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list" id="ref-for-list③">list</a>.</p> |
| <li data-md> |
| <p>If <var>values</var>’s <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-size" id="ref-for-list-size④">size</a> is not <var>resultsSize</var>, throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①⑥">TypeError</a></code> exception.</p> |
| <li data-md> |
| <p>For each <var>value</var> and <var>resultType</var> in <var>values</var> and <var>results</var>, paired linearly,</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append①①">Append</a> <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue⑨">ToWebAssemblyValue</a>(<var>value</var>, <var>resultType</var>) to <var>wasmValues</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>wasmValues</var>.</p> |
| </ol> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="create a host function"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-a-host-function">create a host function</dfn> from the JavaScript object <var>func</var> and type <var>functype</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iscallable" id="ref-for-sec-iscallable②">IsCallable</a>(<var>func</var>).</p> |
| <li data-md> |
| <p>Let <var>stored settings</var> be the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#incumbent-settings-object" id="ref-for-incumbent-settings-object">incumbent settings object</a>.</p> |
| <li data-md> |
| <p>Let <var>hostfunc</var> be a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostfunc" id="ref-for-syntax-hostfunc">host function</a> which performs the following steps when called with arguments <var>arguments</var>:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>realm</var> be <var>func</var>’s <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-associated-realm" id="ref-for-dfn-associated-realm">associated Realm</a>.</p> |
| <li data-md> |
| <p>Let <var>relevant settings</var> be <var>realm</var>’s <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#concept-realm-settings-object" id="ref-for-concept-realm-settings-object">settings object</a>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-script" id="ref-for-prepare-to-run-script">Prepare to run script</a> with <var>relevant settings</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-a-callback" id="ref-for-prepare-to-run-a-callback">Prepare to run a callback</a> with <var>stored settings</var>.</p> |
| <li data-md> |
| <p>Let <var>result</var> be the result of <a data-link-type="dfn" href="#run-a-host-function" id="ref-for-run-a-host-function">running a host function</a> from <var>func</var>, <var>functype</var>, and <var>arguments</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-a-callback" id="ref-for-clean-up-after-running-a-callback">Clean up after running a callback</a> with <var>stored settings</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script" id="ref-for-clean-up-after-running-script">Clean up after running script</a> with <var>relevant settings</var>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>result</var>.[[Type]] is <emu-const>throw</emu-const> or <emu-const>normal</emu-const>.</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③②">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②⑧">associated store</a>.</p> |
| <li data-md> |
| <p>If <var>result</var>.[[Type]] is <emu-const>throw</emu-const>, then:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>v</var> be <var>result</var>.[[Value]].</p> |
| <li data-md> |
| <p>If <var>v</var> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#implements" id="ref-for-implements④">implements</a> <code class="idl"><a data-link-type="idl" href="#exception" id="ref-for-exception①">Exception</a></code>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>address</var> be <var>v</var>.[[Address]].</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>type</var> be the result of <a data-link-type="dfn" href="#get-the-javascript-exception-tag" id="ref-for-get-the-javascript-exception-tag②">getting the JavaScript exception tag</a>.</p> |
| <li data-md> |
| <p>Let <var>payload</var> be <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③⓪">!</a> <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue①⓪">ToWebAssemblyValue</a>(<var>v</var>, <a data-link-type="dfn" data-refhint-key="92193adb" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①⓪">externref</a>).</p> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>address</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-alloc" id="ref-for-embed-exn-alloc">exn_alloc</a>(<var>store</var>, <var>type</var>, « <var>payload</var> »).</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③③">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store②⑨">associated store</a> to <var>store</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Execute the WebAssembly instructions (<a data-link-type="dfn" data-refhint-key="b0f69a43" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values③">ref.exn</a> <var>address</var>) (<a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/instructions.html#exec-throw-ref" id="ref-for-exec-throw-ref">throw_ref</a>).</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise, return <var>result</var>.[[Value]].</p> |
| </ol> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>funcaddr</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-alloc" id="ref-for-embed-func-alloc">func_alloc</a>(<var>store</var>, <var>functype</var>, <var>hostfunc</var>).</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③④">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③⓪">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p>Return <var>funcaddr</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="ToJSValue"> |
| |
| The algorithm <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="tojsvalue">ToJSValue</dfn>(<var>w</var>) coerces a <a data-link-type="dfn" data-refhint-key="8390efce" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values④">WebAssembly value</a> to a JavaScript value by performing the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>w</var> is not of the form <a data-link-type="dfn" data-refhint-key="5e745a1a" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values⑤">v128.const</a> <var>v128</var>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>w</var> is not of the form <a data-link-type="dfn" data-refhint-key="b0f69a43" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values⑥">ref.exn</a> <var>exnaddr</var>.</p> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="74913b16" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values⑦">i64.const</a> <var>u64</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>i64</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed" id="ref-for-aux-signed">signed_64</a>(<var>u64</var>).</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#ℤ" id="ref-for-ℤ">ℤ</a>(<var>i64</var> interpreted as a <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#mathematical-value" id="ref-for-mathematical-value">mathematical value</a>).</p> |
| </ol> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values⑧">i32.const</a> <var>u32</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>i32</var> be <a data-link-type="dfn" data-refhint-key="71830f3f" href="https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed" id="ref-for-aux-signed①">signed_32</a>(<var>u32</var>).</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#𝔽" id="ref-for-𝔽">𝔽</a>(<var>i32</var> interpreted as a <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#mathematical-value" id="ref-for-mathematical-value①">mathematical value</a>).</p> |
| </ol> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="dfe8fce9" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values⑨">f32.const</a> <var>f32</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>f32</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float">+∞</a> or <a data-link-type="dfn" data-refhint-key="fd8a763c" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float①">−∞</a>, return <strong>+∞</strong><sub>𝔽</sub> or <strong>-∞</strong><sub>𝔽</sub>, respectively.</p> |
| <li data-md> |
| <p>If <var>f32</var> is <a data-link-type="dfn" data-refhint-key="8b33b0c0" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float②">nan</a>, return <strong>NaN</strong>.</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#𝔽" id="ref-for-𝔽①">𝔽</a>(<var>f32</var> interpreted as a <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#mathematical-value" id="ref-for-mathematical-value②">mathematical value</a>).</p> |
| </ol> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="f2c8868c" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①⓪">f64.const</a> <var>f64</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>f64</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float③">+∞</a> or <a data-link-type="dfn" data-refhint-key="fd8a763c" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float④">−∞</a>, return <strong>+∞</strong><sub>𝔽</sub> or <strong>-∞</strong><sub>𝔽</sub>, respectively.</p> |
| <li data-md> |
| <p>If <var>f64</var> is <a data-link-type="dfn" data-refhint-key="8b33b0c0" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float⑤">nan</a>, return <strong>NaN</strong>.</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#𝔽" id="ref-for-𝔽②">𝔽</a>(<var>f64</var> interpreted as a <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#mathematical-value" id="ref-for-mathematical-value③">mathematical value</a>).</p> |
| </ol> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="6b9f083b" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①①">ref.null</a> <var>t</var>, return null.</p> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="2a855222" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①②">ref.i31</a> <var>u31</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>i31</var> be <a data-link-type="dfn" data-refhint-key="87dd702b" href="https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed" id="ref-for-aux-signed②">signed_31</a>(<var>u31</var>).</p> |
| <li data-md> |
| <p>Let return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#𝔽" id="ref-for-𝔽③">𝔽</a>(<var>i31</var>).</p> |
| </ol> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="4a3b2658" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①③">ref.struct</a> <var>structaddr</var>, return the result of creating <a data-link-type="dfn" href="#a-new-exported-gc-object" id="ref-for-a-new-exported-gc-object">a new Exported GC Object</a> from <var>structaddr</var> and "struct".</p> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="b73131e1" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①④">ref.array</a> <var>arrayaddr</var>, return the result of creating <a data-link-type="dfn" href="#a-new-exported-gc-object" id="ref-for-a-new-exported-gc-object①">a new Exported GC Object</a> from <var>arrayaddr</var> and "array".</p> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="e4a6ca14" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①⑤">ref.func</a> <var>funcaddr</var>, return the result of creating <a data-link-type="dfn" href="#a-new-exported-function" id="ref-for-a-new-exported-function①">a new Exported Function</a> from <var>funcaddr</var>.</p> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="eba518e9" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①⑥">ref.host</a> <var>hostaddr</var>, return the result of <a data-link-type="dfn" href="#retrieving-a-host-value" id="ref-for-retrieving-a-host-value①">retrieving a host value</a> from <var>hostaddr</var>.</p> |
| <li data-md> |
| <p>If <var>w</var> is of the form <a data-link-type="dfn" data-refhint-key="f3505c41" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①⑦">ref.extern</a> <var>ref</var>, return <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue⑤">ToJSValue</a>(<var>ref</var>).</p> |
| </ol> |
| <p class="note" role="note"><span class="marker">Note:</span> Number values which are equal to NaN may have various observable NaN payloads; see <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/structured-data.html#sec-numerictorawbytes" id="ref-for-sec-numerictorawbytes">NumericToRawBytes</a> for details.</p> |
| </div> |
| <div class="algorithm" data-algorithm="retrieving a host value"> |
| <p>For <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="retrieving-a-host-value">retrieving a host value</dfn> from an <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostaddr" id="ref-for-syntax-hostaddr①">host address</a> <var>hostaddr</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③⑤">surrounding agent</a>’s associated <a data-link-type="dfn" href="#host-value-cache" id="ref-for-host-value-cache">host value cache</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>map</var>[<var>hostaddr</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①④">exists</a>.</p> |
| <li data-md> |
| <p>Return <var>map</var>[<var>hostaddr</var>].</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="ToWebAssemblyValue"> |
| |
| The algorithm <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="towebassemblyvalue">ToWebAssemblyValue</dfn>(<var>v</var>, <var>type</var>) coerces a JavaScript value to a <a data-link-type="dfn" data-refhint-key="8390efce" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①⑧">WebAssembly value</a> by performing the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>type</var> is not <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types⑦">v128</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>type</var> does not <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-valtype" id="ref-for-match-valtype⑤">match</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①①">exnref</a>.</p> |
| <li data-md> |
| <p>If <var>type</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype⑧">i64</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>i64</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③①">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tobigint64" id="ref-for-sec-tobigint64">ToBigInt64</a>(<var>v</var>).</p> |
| <li data-md> |
| <p>Let <var>u64</var> be the unsigned integer such that <var>i64</var> is <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed" id="ref-for-aux-signed③">signed_64</a>(<var>u64</var>).</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" data-refhint-key="74913b16" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values①⑨">i64.const</a> <var>u64</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>type</var> is <a data-link-type="dfn" data-refhint-key="1eccdce5" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype⑨">i32</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>i32</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③②">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-toint32" id="ref-for-sec-toint32">ToInt32</a>(<var>v</var>).</p> |
| <li data-md> |
| <p>Let <var>u32</var> be the unsigned integer such that <var>i32</var> is <a data-link-type="dfn" data-refhint-key="71830f3f" href="https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed" id="ref-for-aux-signed④">signed_32</a>(<var>u32</var>).</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②⓪">i32.const</a> <var>u32</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>type</var> is <a data-link-type="dfn" data-refhint-key="a4646532" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype①⓪">f32</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>number</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③③">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tonumber" id="ref-for-sec-tonumber">ToNumber</a>(<var>v</var>).</p> |
| <li data-md> |
| <p>If <var>number</var> is <strong>NaN</strong>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>n</var> be an implementation-defined integer such that <a data-link-type="dfn" data-refhint-key="00c2566d" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float⑥">canon</a><sub>32</sub> ≤ <var>n</var> < 2<sup><a data-link-type="dfn" data-refhint-key="e4515620" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float⑦">signif</a>(32)</sup>.</p> |
| <li data-md> |
| <p>Let <var>f32</var> be <a data-link-type="dfn" data-refhint-key="8b33b0c0" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float⑧">nan</a>(n).</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>f32</var> be <var>number</var> rounded to the nearest representable value using IEEE 754-2019 round to nearest, ties to even mode. <a data-link-type="biblio" href="#biblio-ieee-754" title="IEEE Standard for Floating-Point Arithmetic">[IEEE-754]</a></p> |
| </ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" data-refhint-key="dfe8fce9" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②①">f32.const</a> <var>f32</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>type</var> is <a data-link-type="dfn" data-refhint-key="487b76fe" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype①①">f64</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>number</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③④">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tonumber" id="ref-for-sec-tonumber①">ToNumber</a>(<var>v</var>).</p> |
| <li data-md> |
| <p>If <var>number</var> is <strong>NaN</strong>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>n</var> be an implementation-defined integer such that <a data-link-type="dfn" data-refhint-key="00c2566d" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float⑨">canon</a><sub>64</sub> ≤ <var>n</var> < 2<sup><a data-link-type="dfn" data-refhint-key="e4515620" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float①⓪">signif</a>(64)</sup>.</p> |
| <li data-md> |
| <p>Let <var>f64</var> be <a data-link-type="dfn" data-refhint-key="8b33b0c0" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-float" id="ref-for-syntax-float①①">nan</a>(n).</p> |
| </ol> |
| <li data-md> |
| <p>Otherwise,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>f64</var> be <var>number</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" data-refhint-key="f2c8868c" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②②">f64.const</a> <var>f64</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>type</var> is of the form <a data-link-type="dfn" data-refhint-key="a130a533" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①②">ref</a> <var>null</var> <var>heaptype</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>v</var> is null,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>r</var> be <a data-link-type="dfn" data-refhint-key="6b9f083b" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②③">ref.null</a> <var>heaptype</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Else if <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-valtype" id="ref-for-embed-match-valtype">match_valtype</a>(<var>type</var>, <a data-link-type="dfn" data-refhint-key="a130a533" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①③">ref</a> <var>null</var> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#heap-types" id="ref-for-heap-types">extern</a>),</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>ref</var> be <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue①①">ToWebAssemblyValue</a>(<var>v</var>, <a data-link-type="dfn" data-refhint-key="a130a533" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①④">ref</a> <a data-link-type="dfn" data-refhint-key="f4809bf4" href="https://webassembly.github.io/spec/core/syntax/types.html#heap-types" id="ref-for-heap-types①">any</a>).</p> |
| <li data-md> |
| <p>Let <var>r</var> be <a data-link-type="dfn" data-refhint-key="f3505c41" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②④">ref.extern</a> <var>ref</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Else if <var>v</var> is an <a data-link-type="dfn" href="#exported-function" id="ref-for-exported-function②">Exported Function</a> and <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-valtype" id="ref-for-embed-match-valtype①">match_valtype</a>(<var>type</var>, <a data-link-type="dfn" data-refhint-key="a130a533" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①⑤">ref</a> <var>null</var> <a data-link-type="dfn" data-refhint-key="cf0d7dd8" href="https://webassembly.github.io/spec/core/syntax/types.html#heap-types" id="ref-for-heap-types②">func</a>),</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>funcaddr</var> be the value of <var>v</var>’s [[FunctionAddress]] internal slot.</p> |
| <li data-md> |
| <p>Let <var>r</var> be <a data-link-type="dfn" data-refhint-key="e4a6ca14" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②⑤">ref.func</a> <var>funcaddr</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Else if <var>v</var> <a data-link-type="dfn" data-refhint-key="866f3068" href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type" id="ref-for-sec-ecmascript-language-types-number-type①">is a Number</a> and <var>v</var> is equal to <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③⑤">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-toint32" id="ref-for-sec-toint32①">ToInt32</a>(<var>v</var>) and <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#ℝ" id="ref-for-ℝ">ℝ</a>(<var>v</var>) < 2<sup>30</sup> and <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#ℝ" id="ref-for-ℝ①">ℝ</a>(<var>v</var>) ⩾ -2<sup>30</sup>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>i31</var> <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③⑥">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-toint32" id="ref-for-sec-toint32②">ToInt32</a>(<var>v</var>).</p> |
| <li data-md> |
| <p>Let <var>u31</var> be the unsigned integer such that <var>i31</var> is <a data-link-type="dfn" data-refhint-key="87dd702b" href="https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed" id="ref-for-aux-signed⑤">signed_31</a>(<var>i31</var>).</p> |
| <li data-md> |
| <p>Let <var>r</var> be <a data-link-type="dfn" data-refhint-key="2a855222" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②⑥">ref.i31</a> <var>u31</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Else if <var>v</var> is an <a data-link-type="dfn" href="#exported-gc-object" id="ref-for-exported-gc-object①">Exported GC Object</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>objectaddr</var> be the value of <var>v</var>’s [[ObjectAddress]] internal slot.</p> |
| <li data-md> |
| <p>Let <var>objectkind</var> be the value of <var>v</var>’s [[ObjectKind]] internal slot.</p> |
| <li data-md> |
| <p>If <var>objectkind</var> is "array",</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>r</var> be <a data-link-type="dfn" data-refhint-key="b73131e1" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②⑦">ref.array</a> <var>objectaddr</var>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>objectkind</var> is "struct",</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>r</var> be <a data-link-type="dfn" data-refhint-key="4a3b2658" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②⑧">ref.struct</a> <var>objectaddr</var>.</p> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Else,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③⑥">surrounding agent</a>’s associated <a data-link-type="dfn" href="#host-value-cache" id="ref-for-host-value-cache①">host value cache</a>.</p> |
| <li data-md> |
| <p>If a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostaddr" id="ref-for-syntax-hostaddr②">host address</a> <var>hostaddr</var> exists such that <var>map</var>[<var>hostaddr</var>] is the same as <var>v</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" data-refhint-key="eba518e9" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values②⑨">ref.host</a> <var>hostaddr</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Let <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostaddr" id="ref-for-syntax-hostaddr③">host address</a> <var>hostaddr</var> be the smallest address such that <var>map</var>[<var>hostaddr</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①⑤">exists</a> is false.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set⑥">Set</a> <var>map</var>[<var>hostaddr</var>] to <var>v</var>.</p> |
| <li data-md> |
| <p>Let <var>r</var> be <a data-link-type="dfn" data-refhint-key="eba518e9" href="https://webassembly.github.io/spec/core/exec/runtime.html#values" id="ref-for-values③⓪">ref.host</a> <var>hostaddr</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>store</var> be the current agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③①">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>actualtype</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-ref-type" id="ref-for-embed-ref-type">ref_type</a>(<var>store</var>, <var>r</var>).</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-valtype" id="ref-for-embed-match-valtype②">match_valtype</a>(<var>actualtype</var>, <var>type</var>) is false,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①⑦">TypeError</a></code>.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>r</var>.</p> |
| </ol> |
| <li data-md> |
| <p class="assertion">Assert: This step is not reached.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="AddressValueToU64"> |
| |
| The algorithm <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="addressvaluetou64">AddressValueToU64</dfn>(<var>v</var>, <var>addrtype</var>) converts a JavaScript value to a WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-int" id="ref-for-syntax-int">u64</a> for use in embedding operations. It is designed to act like <a data-link-type="dfn" href="https://heycam.github.io/webidl/#EnforceRange" id="ref-for-EnforceRange">[EnforceRange]</a> <a data-link-type="dfn" href="https://heycam.github.io/webidl/#idl-unsigned-long" id="ref-for-idl-unsigned-long">unsigned long</a> for <code class="idl"><a data-link-type="idl" href="#enumdef-addresstype" id="ref-for-enumdef-addresstype②">AddressType</a></code> "i32", and to extend these semantics to <code class="idl"><a data-link-type="idl" href="#enumdef-addresstype" id="ref-for-enumdef-addresstype③">AddressType</a></code> "i64", by performing the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>If <var>addrtype</var> is "i32",</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>n</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③⑦">?</a> <a data-link-type="abstract-op" href="https://webidl.spec.whatwg.org/#abstract-opdef-converttoint" id="ref-for-abstract-opdef-converttoint">ConvertToInt</a>(<var>v</var>, 32, "unsigned"), where the destination type is associated with <a data-link-type="dfn" href="https://heycam.github.io/webidl/#EnforceRange" id="ref-for-EnforceRange①">[EnforceRange]</a>.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> This is equivalent to the <a data-link-type="dfn" href="https://heycam.github.io/webidl/#js-unsigned-long" id="ref-for-js-unsigned-long">JS conversion rules</a> for <a data-link-type="dfn" href="https://heycam.github.io/webidl/#EnforceRange" id="ref-for-EnforceRange②">[EnforceRange]</a> <a data-link-type="dfn" href="https://heycam.github.io/webidl/#idl-unsigned-long" id="ref-for-idl-unsigned-long①">unsigned long</a>.</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#ℝ" id="ref-for-ℝ②">ℝ</a>(<var>n</var>) as a WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-int" id="ref-for-syntax-int①">u64</a>.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>addrtype</var> is "i64",</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>n</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③⑧">?</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tobigint" id="ref-for-sec-tobigint">ToBigInt</a>(<var>v</var>).</p> |
| <li data-md> |
| <p>If <var>n</var> < 0 or <var>n</var> > 2<sup>64</sup> − 1, <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-throw" id="ref-for-dfn-throw④">throw</a> a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①⑧">TypeError</a></code>.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> This operation is designed to emulate <a data-link-type="dfn" href="https://heycam.github.io/webidl/#EnforceRange" id="ref-for-EnforceRange③">[EnforceRange]</a>.</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#ℝ" id="ref-for-ℝ③">ℝ</a>(<var>n</var>) as a WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-int" id="ref-for-syntax-int②">u64</a>.</p> |
| </ol> |
| <li data-md> |
| <p class="assertion">Assert: This step is not reached.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="U64ToAddressValue"> |
| |
| The algorithm <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="u64toaddressvalue">U64ToAddressValue</dfn>(<var>v</var>, <var>addrtype</var>) converts a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/values.html#syntax-int" id="ref-for-syntax-int③">u64</a> value from a WebAssembly embedding operation to the correct variant of <code class="idl"><a data-link-type="idl" href="#typedefdef-addressvalue" id="ref-for-typedefdef-addressvalue①①">AddressValue</a></code> for an <code class="idl"><a data-link-type="idl" href="#enumdef-addresstype" id="ref-for-enumdef-addresstype④">AddressType</a></code>, by performing the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>If <var>addrtype</var> is "i32", return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#𝔽" id="ref-for-𝔽④">𝔽</a>(<var>v</var> interpreted as a <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#mathematical-value" id="ref-for-mathematical-value④">mathematical value</a>).</p> |
| <li data-md> |
| <p>Else if <var>addrtype</var> is "i64", return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#ℤ" id="ref-for-ℤ①">ℤ</a>(<var>v</var> interpreted as a <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#mathematical-value" id="ref-for-mathematical-value⑤">mathematical value</a>).</p> |
| <li data-md> |
| <p class="assertion">Assert: This step is not reached.</p> |
| </ol> |
| </div> |
| <h3 class="heading settled" data-level="5.7" id="tags"><span class="secno">5.7. </span><span class="content">Tags</span><a class="self-link" href="#tags"></a></h3> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="tag_alloc">tag_alloc</dfn>(<var>store</var>, <var>parameters</var>) algorithm creates a new <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tagaddr" id="ref-for-syntax-tagaddr①">tag address</a> for <var>parameters</var> in <var>store</var> and returns the updated store and the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tagaddr" id="ref-for-syntax-tagaddr②">tag address</a>.</p> |
| <h4 class="heading settled" data-level="5.7.1" id="tag-types"><span class="secno">5.7.1. </span><span class="content">Tag types</span><a class="self-link" href="#tag-types"></a></h4> |
| <pre class="idl highlight def"><c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-tagtype"><code><c- g>TagType</c-></code></dfn> { |
| <c- b>required</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence" id="ref-for-idl-sequence④"><c- b>sequence</c-></a><<a data-link-type="idl-name" href="#enumdef-valuetype" id="ref-for-enumdef-valuetype①"><c- n>ValueType</c-></a>> <dfn class="dfn-paneled idl-code" data-dfn-for="TagType" data-dfn-type="dict-member" data-export data-type="sequence<ValueType>" id="dom-tagtype-parameters"><code><c- g>parameters</c-></code></dfn>; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace" id="ref-for-LegacyNamespace⑤"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly⑥"><c- n>WebAssembly</c-></a>, <a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#Exposed" id="ref-for-Exposed"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>Worker</c->,<c- n>Worklet</c->)] |
| <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="tag"><code><c- g>Tag</c-></code></dfn> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-tag-tag" id="ref-for-dom-tag-tag"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#dictdef-tagtype" id="ref-for-dictdef-tagtype"><c- n>TagType</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Tag/Tag(type), Tag/constructor(type)" data-dfn-type="argument" data-export id="dom-tag-tag-type-type"><code><c- g>type</c-></code></dfn>); |
| }; |
| </pre> |
| <p>A <code class="idl"><a data-link-type="idl" href="#tag" id="ref-for-tag③">Tag</a></code> value represents an exception tag.</p> |
| <div class="algorithm" data-algorithm="initialize a Tag object"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="initialize-a-tag-object">initialize a Tag object</dfn> <var>tag</var> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tagaddr" id="ref-for-syntax-tagaddr③">tag address</a> <var>tagAddress</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③⑦">surrounding agent</a>’s associated <a data-link-type="dfn" href="#tag-object-cache" id="ref-for-tag-object-cache">Tag object cache</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>map</var>[<var>tagAddress</var>] doesn’t <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①⑥">exist</a>.</p> |
| <li data-md> |
| <p>Set <var>tag</var>.[[Address]] to <var>tagAddress</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set⑦">Set</a> <var>map</var>[<var>tagAddress</var>] to <var>tag</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="create a Tag object"> |
| |
| To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-a-tag-object">create a Tag object</dfn> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tagaddr" id="ref-for-syntax-tagaddr④">tag address</a> <var>tagAddress</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③⑧">surrounding agent</a>’s associated <a data-link-type="dfn" href="#tag-object-cache" id="ref-for-tag-object-cache①">Tag object cache</a>.</p> |
| <li data-md> |
| <p>If <var>map</var>[<var>tagAddress</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①⑦">exists</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Return <var>map</var>[<var>tagAddress</var>].</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>tag</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#new" id="ref-for-new④">new</a> <code class="idl"><a data-link-type="idl" href="#tag" id="ref-for-tag④">Tag</a></code>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-a-tag-object" id="ref-for-initialize-a-tag-object">Initialize</a> <var>tag</var> from <var>tagAddress</var>.</p> |
| <li data-md> |
| <p>Return <var>tag</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="Tag(type)" data-algorithm-for="Tag"> |
| <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Tag" data-dfn-type="constructor" data-export data-lt="Tag(type)|constructor(type)" id="dom-tag-tag"><code>new Tag(<var>type</var>)</code></dfn> constructor steps are:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>parameters</var> be <var>type</var>["parameters"].</p> |
| <li data-md> |
| <p>Let <var>wasmParameters</var> be «».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate①①">For each</a> <var>type</var> of <var>parameters</var>,</p> |
| <ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append①②">Append</a> <a data-link-type="dfn" href="#tovaluetype" id="ref-for-tovaluetype②">ToValueType</a>(<var>type</var>) to <var>wasmParameters</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>store</var> be the current agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③②">associated store</a>.</p> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>tagAddress</var>) be <a data-link-type="dfn" href="#tag_alloc" id="ref-for-tag_alloc">tag_alloc</a>(<var>store</var>, <var>wasmParameters</var>).</p> |
| <li data-md> |
| <p>Set the current agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③③">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-a-tag-object" id="ref-for-initialize-a-tag-object①">Initialize</a> <strong>this</strong> from <var>tagAddress</var>.</p> |
| </ol> |
| </div> |
| <h3 class="heading settled" data-level="5.8" id="gc-exotic-objects"><span class="secno">5.8. </span><span class="content">Garbage Collected Objects</span><a class="self-link" href="#gc-exotic-objects"></a></h3> |
| <p>A WebAssembly struct or array is made available in JavaScript as an <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="exported-gc-object">Exported GC Object</dfn>. |
| An <a data-link-type="dfn" href="#exported-gc-object" id="ref-for-exported-gc-object②">Exported GC Object</a> is an exotic object that wraps a garbage collected WebAssembly reference value. |
| Most JavaScript operations on an <a data-link-type="dfn" href="#exported-gc-object" id="ref-for-exported-gc-object③">Exported GC Object</a> will throw an exception or return undefined.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> These operations may be refined in the future to allow richer interactions in JavaScript with WebAssembly structs and arrays.</p> |
| <p>An <a data-link-type="dfn" href="#exported-gc-object" id="ref-for-exported-gc-object④">Exported GC Object</a> contains an [[ObjectAddress]] internal slot, which holds a <u class="link-error" data-lt="object address" title="LINK ERROR: No 'dfn' refs found for 'object address'.">object address</u> relative to the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent③⑨">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③④">associated store</a>, |
| and an [[ObjectKind]] internal slot, which holds the string value "struct" or "array".</p> |
| <p>The internal methods of an <a data-link-type="dfn" href="#exported-gc-object" id="ref-for-exported-gc-object⑤">Exported GC Object</a> use the following implementations.</p> |
| <div class="algorithm" data-algorithm="[[GetPrototypeOf]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="getprototypeof-internal-method-of-an-exported-gc-object">[[GetPrototypeOf]] internal method of an Exported GC Object</dfn> <var>O</var> takes no arguments and returns null. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Return null.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[SetPrototypeOf]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="setprototypeof-internal-method-of-an-exported-gc-object">[[SetPrototypeOf]] internal method of an Exported GC Object</dfn> <var>O</var> takes argument <var>V</var> (an Object or null) and returns a boolean. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Return false.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[IsExtensible]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="isextensible-internal-method-of-an-exported-gc-object">[[IsExtensible]] internal method of an Exported GC Object</dfn> <var>O</var> takes no arguments and returns a boolean. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Return false.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[PreventExtensions]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="preventextensions-internal-method-of-an-exported-gc-object">[[PreventExtensions]] internal method of an Exported GC Object</dfn> <var>O</var> takes no arguments and returns a boolean. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Return false.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[GetOwnProperty]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="getownproperty-internal-method-of-an-exported-gc-object">[[GetOwnProperty]] internal method of an Exported GC Object</dfn> <var>O</var> takes argument <var>P</var> (a property key) and returns undefined. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Return undefined.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[DefineOwnProperty]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="defineownproperty-internal-method-of-an-exported-gc-object">[[DefineOwnProperty]] internal method of an Exported GC Object</dfn> <var>O</var> takes arguments <var>P</var> (a property key) and <var>Desc</var> (a property descriptor) and returns a boolean. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Return false.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[HasProperty]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="hasproperty-internal-method-of-an-exported-gc-object">[[HasProperty]] internal method of an Exported GC Object</dfn> <var>O</var> takes argument <var>P</var> (a property key) and returns a boolean. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Return false.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[Get]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="get-internal-method-of-an-exported-gc-object">[[Get]] internal method of an Exported GC Object</dfn> <var>O</var> takes arguments <var>P</var> (a property key) and <var>Receiver</var> (an ECMAScript language value) and returns undefined. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Return undefined.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[Set]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="set-internal-method-of-an-exported-gc-object">[[Set]] internal method of an Exported GC Object</dfn> <var>O</var> takes arguments <var>P</var> (a property key), <var>V</var> (an ECMAScript language value), and <var>Receiver</var> (an ECMAScript language value) and throws an exception. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror①⑨">TypeError</a></code>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[Delete]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="delete-internal-method-of-an-exported-gc-object">[[Delete]] internal method of an Exported GC Object</dfn> <var>O</var> takes argument <var>P</var> (a property key) and throws an exception. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror②⓪">TypeError</a></code>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="[[OwnPropertyKeys]] internal method of an Exported GC Object"> |
| |
| The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="ownpropertykeys-internal-method-of-an-exported-gc-object">[[OwnPropertyKeys]] internal method of an Exported GC Object</dfn> <var>O</var> takes no arguments and returns a list. It performs the following steps when called: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let keys be a new empty list.</p> |
| <li data-md> |
| <p>Return keys.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="a new Exported GC Object"> |
| |
| To create <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="a-new-exported-gc-object">a new Exported GC Object</dfn> from a WebAssembly <u class="link-error" data-lt="object address" title="LINK ERROR: No 'dfn' refs found for 'object address'.">object address</u> <var>objectaddr</var> and a string <var>objectkind</var>, perform the following steps: |
| |
| |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>objectkind</var> is either "array" or "struct".</p> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④⓪">surrounding agent</a>’s associated <a data-link-type="dfn" href="#exported-gc-object-cache" id="ref-for-exported-gc-object-cache">exported GC object cache</a>.</p> |
| <li data-md> |
| <p>If <var>map</var>[<var>objectaddr</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①⑧">exists</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Return <var>map</var>[<var>objectaddr</var>].</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>object</var> be <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-makebasicobject" id="ref-for-sec-makebasicobject">MakeBasicObject</a>(« [[ObjectAddress]] »).</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[ObjectAddress]] to <var>objectaddr</var>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[ObjectKind]] to <var>objectkind</var>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[GetPrototypeOf]] as specified in <a data-link-type="dfn" href="#getprototypeof-internal-method-of-an-exported-gc-object" id="ref-for-getprototypeof-internal-method-of-an-exported-gc-object">[[GetPrototypeOf]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[SetPrototypeOf]] as specified in <a data-link-type="dfn" href="#setprototypeof-internal-method-of-an-exported-gc-object" id="ref-for-setprototypeof-internal-method-of-an-exported-gc-object">[[SetPrototypeOf]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[IsExtensible]] as specified in <a data-link-type="dfn" href="#isextensible-internal-method-of-an-exported-gc-object" id="ref-for-isextensible-internal-method-of-an-exported-gc-object">[[IsExtensible]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[PreventExtensions]] as specified in <a data-link-type="dfn" href="#preventextensions-internal-method-of-an-exported-gc-object" id="ref-for-preventextensions-internal-method-of-an-exported-gc-object">[[PreventExtensions]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[GetOwnProperty]] as specified in <a data-link-type="dfn" href="#getownproperty-internal-method-of-an-exported-gc-object" id="ref-for-getownproperty-internal-method-of-an-exported-gc-object">[[GetOwnProperty]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[DefineOwnProperty]] as specified in <a data-link-type="dfn" href="#defineownproperty-internal-method-of-an-exported-gc-object" id="ref-for-defineownproperty-internal-method-of-an-exported-gc-object">[[DefineOwnProperty]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[HasProperty]] as specified in <a data-link-type="dfn" href="#hasproperty-internal-method-of-an-exported-gc-object" id="ref-for-hasproperty-internal-method-of-an-exported-gc-object">[[HasProperty]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[Get]] as specified in <a data-link-type="dfn" href="#get-internal-method-of-an-exported-gc-object" id="ref-for-get-internal-method-of-an-exported-gc-object">[[Get]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[Set]] as specified in <a data-link-type="dfn" href="#set-internal-method-of-an-exported-gc-object" id="ref-for-set-internal-method-of-an-exported-gc-object">[[Set]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[Delete]] as specified in <a data-link-type="dfn" href="#delete-internal-method-of-an-exported-gc-object" id="ref-for-delete-internal-method-of-an-exported-gc-object">[[Delete]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p>Set <var>object</var>.[[OwnPropertyKeys]] as specified in <a data-link-type="dfn" href="#ownpropertykeys-internal-method-of-an-exported-gc-object" id="ref-for-ownpropertykeys-internal-method-of-an-exported-gc-object">[[OwnPropertyKeys]] internal method of an Exported GC Object</a>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set⑧">Set</a> <var>map</var>[<var>objectaddr</var>] to <var>object</var>.</p> |
| <li data-md> |
| <p>Return <var>object</var>.</p> |
| </ol> |
| </div> |
| <h3 class="heading settled" data-level="5.9" id="exceptions"><span class="secno">5.9. </span><span class="content">Exceptions</span><a class="self-link" href="#exceptions"></a></h3> |
| <pre class="idl highlight def"><c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-exceptionoptions"><code><c- g>ExceptionOptions</c-></code></dfn> { |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-boolean" id="ref-for-idl-boolean②"><c- b>boolean</c-></a> <dfn class="dfn-paneled idl-code" data-default="false" data-dfn-for="ExceptionOptions" data-dfn-type="dict-member" data-export data-type="boolean" id="dom-exceptionoptions-tracestack"><code><c- g>traceStack</c-></code></dfn> = <c- b>false</c->; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace" id="ref-for-LegacyNamespace⑥"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly⑦"><c- n>WebAssembly</c-></a>, <a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#Exposed" id="ref-for-Exposed①"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>Worker</c->,<c- n>Worklet</c->)] |
| <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="exception"><code><c- g>Exception</c-></code></dfn> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-exception-exception" id="ref-for-dom-exception-exception"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#tag" id="ref-for-tag⑤"><c- n>Tag</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Exception/Exception(exceptionTag, payload, options), Exception/constructor(exceptionTag, payload, options), Exception/Exception(exceptionTag, payload), Exception/constructor(exceptionTag, payload)" data-dfn-type="argument" data-export id="dom-exception-exception-exceptiontag-payload-options-exceptiontag"><code><c- g>exceptionTag</c-></code></dfn>, <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence" id="ref-for-idl-sequence⑤"><c- b>sequence</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any⑧"><c- b>any</c-></a>> <dfn class="dfn-paneled idl-code" data-dfn-for="Exception/Exception(exceptionTag, payload, options), Exception/constructor(exceptionTag, payload, options), Exception/Exception(exceptionTag, payload), Exception/constructor(exceptionTag, payload)" data-dfn-type="argument" data-export id="dom-exception-exception-exceptiontag-payload-options-payload"><code><c- g>payload</c-></code></dfn>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-exceptionoptions" id="ref-for-dictdef-exceptionoptions"><c- n>ExceptionOptions</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Exception/Exception(exceptionTag, payload, options), Exception/constructor(exceptionTag, payload, options), Exception/Exception(exceptionTag, payload), Exception/constructor(exceptionTag, payload)" data-dfn-type="argument" data-export id="dom-exception-exception-exceptiontag-payload-options-options"><code><c- g>options</c-></code></dfn> = {}); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any" id="ref-for-idl-any⑨"><c- b>any</c-></a> <a class="idl-code" data-link-type="method" href="#dom-exception-getarg" id="ref-for-dom-exception-getarg"><c- g>getArg</c-></a>([<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#EnforceRange" id="ref-for-EnforceRange④"><c- g>EnforceRange</c-></a>] <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-unsigned-long" id="ref-for-idl-unsigned-long②"><c- b>unsigned</c-> <c- b>long</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Exception/getArg(index)" data-dfn-type="argument" data-export id="dom-exception-getarg-index-index"><code><c- g>index</c-></code></dfn>); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-boolean" id="ref-for-idl-boolean③"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="method" href="#dom-exception-is" id="ref-for-dom-exception-is"><c- g>is</c-></a>(<a data-link-type="idl-name" href="#tag" id="ref-for-tag⑥"><c- n>Tag</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="Exception/is(exceptionTag)" data-dfn-type="argument" data-export id="dom-exception-is-exceptiontag-exceptiontag"><code><c- g>exceptionTag</c-></code></dfn>); |
| <c- b>readonly</c-> <c- b>attribute</c-> (<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString" id="ref-for-idl-DOMString①"><c- b>DOMString</c-></a> <c- b>or</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined" id="ref-for-idl-undefined①"><c- b>undefined</c-></a>) <a class="idl-code" data-link-type="attribute" data-readonly data-type="(DOMString or undefined)" href="#dom-exception-stack" id="ref-for-dom-exception-stack"><c- g>stack</c-></a>; |
| }; |
| </pre> |
| <p>An <code class="idl"><a data-link-type="idl" href="#exception" id="ref-for-exception②">Exception</a></code> value represents an exception.</p> |
| <div class="algorithm" data-algorithm="initialize an Exception object"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="initialize-an-exception-object">initialize an Exception object</dfn> <var>exn</var> from an <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-exnaddr" id="ref-for-syntax-exnaddr①">Exception address</a> <var>exnAddress</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④①">surrounding agent</a>’s associated <a data-link-type="dfn" href="#exception-object-cache" id="ref-for-exception-object-cache">Exception object cache</a>.</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>map</var>[<var>exnAddress</var>] doesn’t <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists①⑨">exist</a>.</p> |
| <li data-md> |
| <p>Set <var>exn</var>.[[Address]] to <var>exnAddress</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-set" id="ref-for-map-set⑨">Set</a> <var>map</var>[<var>exnAddress</var>] to <var>exn</var>.</p> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④②">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③⑤">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>tagaddr</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-tag" id="ref-for-embed-exn-tag①">exn_tag</a>(<var>store</var>, <var>exnAddress</var>).</p> |
| <li data-md> |
| <p>Let <var>payload</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-read" id="ref-for-embed-exn-read①">exn_read</a>(<var>store</var>, <var>exnAddress</var>).</p> |
| <li data-md> |
| <p>Set <var>exn</var>.[[Type]] to <var>tagaddr</var>.</p> |
| <li data-md> |
| <p>Set <var>exn</var>.[[Payload]] to <var>payload</var>.</p> |
| <li data-md> |
| <p>Set <var>exn</var>.[[Stack]] to undefined.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="create an Exception object"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-an-exception-object">create an Exception object</dfn> from a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-exnaddr" id="ref-for-syntax-exnaddr②">exception address</a> <var>exnAddress</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>map</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④③">surrounding agent</a>’s associated <a data-link-type="dfn" href="#exception-object-cache" id="ref-for-exception-object-cache①">Exception object cache</a>.</p> |
| <li data-md> |
| <p>If <var>map</var>[<var>exnAddress</var>] <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#map-exists" id="ref-for-map-exists②⓪">exists</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Return <var>map</var>[<var>exnAddress</var>].</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>exn</var> be a <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#new" id="ref-for-new⑤">new</a> <code class="idl"><a data-link-type="idl" href="#exception" id="ref-for-exception③">Exception</a></code>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-an-exception-object" id="ref-for-initialize-an-exception-object">Initialize</a> <var>exn</var> from <var>exnAddress</var>.</p> |
| <li data-md> |
| <p>Return <var>exn</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="Exception(exceptionTag, payload, options)" data-algorithm-for="Exception"> |
| <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Exception" data-dfn-type="constructor" data-export data-lt="Exception(exceptionTag, payload, options)|constructor(exceptionTag, payload, options)|Exception(exceptionTag, payload)|constructor(exceptionTag, payload)" id="dom-exception-exception"><code>new Exception(<var>exceptionTag</var>, <var>payload</var>, <var>options</var>)</code></dfn> |
| constructor steps are:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>JSTagAddr</var> be the result of <a data-link-type="dfn" href="#get-the-javascript-exception-tag" id="ref-for-get-the-javascript-exception-tag③">getting the JavaScript exception tag</a>.</p> |
| <li data-md> |
| <p>If <var>exceptionTag</var>.[[Address]] is equal to <var>JSTagAddr</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror②①">TypeError</a></code>.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④④">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③⑥">associated store</a>.</p> |
| <li data-md> |
| <p>Let [<var>types</var>] → [] be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-tag-type" id="ref-for-embed-tag-type">tag_type</a>(<var>store</var>, <var>exceptionTag</var>.[[Address]]).</p> |
| <li data-md> |
| <p>If <var>types</var>’s <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-size" id="ref-for-list-size⑤">size</a> is not <var>payload</var>’s <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-size" id="ref-for-list-size⑥">size</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror②②">TypeError</a></code>.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>wasmPayload</var> be « ».</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate①②">For each</a> <var>value</var> and <var>resultType</var> of <var>payload</var> and <var>types</var>, paired linearly,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>resultType</var> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-valtype" id="ref-for-match-valtype⑥">matches</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types⑧">v128</a> or <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①⑥">exnref</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror②③">TypeError</a></code>.</p> |
| </ol> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-append" id="ref-for-list-append①③">Append</a> <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands③⑨">?</a> <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue①②">ToWebAssemblyValue</a>(<var>value</var>, <var>resultType</var>) to <var>wasmPayload</var>.</p> |
| </ol> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>exceptionAddr</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-alloc" id="ref-for-embed-exn-alloc①">exn_alloc</a>(<var>store</var>, <var>exceptionTag</var>.[[Address]], <var>wasmPayload</var>)</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④⑤">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③⑦">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="#initialize-an-exception-object" id="ref-for-initialize-an-exception-object①">Initialize</a> <strong>this</strong> from <var>exceptionAddr</var>.</p> |
| <li data-md> |
| <p>If <var>options</var>["traceStack"] is true,</p> |
| <ol> |
| <li data-md> |
| <p>Set <strong>this</strong>.[[Stack]] to either a <code class="idl"><a data-link-type="idl" href="https://webidl.spec.whatwg.org/#idl-DOMString" id="ref-for-idl-DOMString②">DOMString</a></code> representation of the current call stack or undefined.</p> |
| </ol> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="getArg(index)" data-algorithm-for="Exception"> |
| <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Exception" data-dfn-type="method" data-export id="dom-exception-getarg"><code>getArg(<var>index</var>)</code></dfn> method steps are:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④⑥">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③⑧">associated store</a>.</p> |
| <li data-md> |
| <p>Let <var>tagaddr</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-tag" id="ref-for-embed-exn-tag②">exn_tag</a>(<var>store</var>, <strong>this</strong>.[[Address]]).</p> |
| <li data-md> |
| <p>Let <var>payload</var> be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-read" id="ref-for-embed-exn-read②">exn_read</a>(<var>store</var>, <strong>this</strong>.[[Address]]).</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>tagaddr</var> is equal to <strong>this</strong>.[[Type]].</p> |
| <li data-md> |
| <p>If <var>index</var> ≥ <var>payload</var>’s <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-size" id="ref-for-list-size⑦">size</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror①⓪">RangeError</a></code>.</p> |
| </ol> |
| <li data-md> |
| <p>Let [<var>types</var>] → [] be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-tag-type" id="ref-for-embed-tag-type①">tag_type</a>(<var>store</var>, <var>tagaddr</var>).</p> |
| <li data-md> |
| <p>If <var>types</var>[<var>index</var>] <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/valid/matching.html#match-valtype" id="ref-for-match-valtype⑦">matches</a> <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#vector-types" id="ref-for-vector-types⑨">v128</a> or <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①⑦">exnref</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror②④">TypeError</a></code>.</p> |
| </ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue⑥">ToJSValue</a>(<var>payload</var>[<var>index</var>]).</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="is(exceptionTag)" data-algorithm-for="Exception"> |
| <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Exception" data-dfn-type="method" data-export id="dom-exception-is"><code>is(<var>exceptionTag</var>)</code></dfn> method steps are:</p> |
| <ol> |
| <li data-md> |
| <p>If <strong>this</strong>.[[Type]] is not equal to <var>exceptionTag</var>.[[Address]],</p> |
| <ol> |
| <li data-md> |
| <p>Return false.</p> |
| </ol> |
| <li data-md> |
| <p>Return true.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="stack" data-algorithm-for="Exception"> |
| <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Exception" data-dfn-type="attribute" data-export id="dom-exception-stack"><code>stack</code></dfn> getter steps are:</p> |
| <ol> |
| <li data-md> |
| <p>Return <strong>this</strong>.[[Stack]].</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="5.9.1" id="js-exceptions"><span class="secno">5.9.1. </span><span class="content">JavaScript exceptions</span><a class="self-link" href="#js-exceptions"></a></h4> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="javascript-exception-tag">JavaScript exception tag</dfn> is a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tagaddr" id="ref-for-syntax-tagaddr⑤">tag address</a> associated with |
| the surrounding agent. It is allocated in the agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store③⑨">associated store</a> on |
| first use and cached. It always has the <a data-link-type="dfn" data-refhint-key="60f810ad" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-tagtype" id="ref-for-syntax-tagtype②">tag type</a> « <a data-link-type="dfn" data-refhint-key="92193adb" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①⑧">externref</a> » → « ».</p> |
| <div class="algorithm" data-algorithm="get the JavaScript exception tag"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="get-the-javascript-exception-tag">get the JavaScript exception tag</dfn>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>If the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④⑦">surrounding agent</a>’s associated <a data-link-type="dfn" href="#javascript-exception-tag" id="ref-for-javascript-exception-tag">JavaScript exception tag</a> has been initialized,</p> |
| <ol> |
| <li data-md> |
| <p>return the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④⑧">surrounding agent</a>’s associated <a data-link-type="dfn" href="#javascript-exception-tag" id="ref-for-javascript-exception-tag①">JavaScript exception tag</a></p> |
| </ol> |
| <li data-md> |
| <p>Let <var>store</var> be the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent④⑨">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store④⓪">associated store</a>.</p> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>tagAddress</var>) be <a data-link-type="dfn" href="#tag_alloc" id="ref-for-tag_alloc①">tag_alloc</a>(<var>store</var>, « <a data-link-type="dfn" data-refhint-key="92193adb" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype①⑨">externref</a> » → « »).</p> |
| <li data-md> |
| <p>Set the current agent’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store④①">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p>Set the current agent’s associated <a data-link-type="dfn" href="#javascript-exception-tag" id="ref-for-javascript-exception-tag②">JavaScript exception tag</a> to <var>tagAddress</var>.</p> |
| <li data-md> |
| <p>return <var>tagAddress</var>.</p> |
| </ol> |
| </div> |
| <h3 class="heading settled" data-level="5.10" id="error-objects"><span class="secno">5.10. </span><span class="content">Error Objects</span><a class="self-link" href="#error-objects"></a></h3> |
| <p>WebAssembly defines the following Error classes: <dfn class="dfn-paneled idl-code" data-dfn-type="exception" data-export id="exceptiondef-compileerror"><code>CompileError</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-type="exception" data-export id="exceptiondef-linkerror"><code>LinkError</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-type="exception" data-export id="exceptiondef-runtimeerror"><code>RuntimeError</code></dfn>.</p> |
| <div class="algorithm" data-algorithm="create the WebAssembly namespace object"> |
| |
| When the <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-namespace-object" id="ref-for-dfn-namespace-object">namespace object</a> for the <code class="idl"><a data-link-type="idl" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly⑧">WebAssembly</a></code> namespace is <a data-link-type="dfn" href="https://heycam.github.io/webidl/#create-a-namespace-object" id="ref-for-create-a-namespace-object">created</a>, the following steps must be run: |
| |
| |
| <ol> |
| <li data-md> |
| <p>Let <var>namespaceObject</var> be the <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#dfn-namespace-object" id="ref-for-dfn-namespace-object①">namespace object</a>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate①③">For each</a> <var>error</var> of « "CompileError", "LinkError", "RuntimeError" »,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>constructor</var> be a new object, implementing the <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-nativeerror-object-structure" id="ref-for-sec-nativeerror-object-structure">NativeError Object Structure</a>, with <var>NativeError</var> set to <var>error</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④⓪">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-definemethodproperty" id="ref-for-sec-definemethodproperty">DefineMethodProperty</a>(<var>namespaceObject</var>, <var>error</var>, <var>constructor</var>, false).</p> |
| </ol> |
| </ol> |
| </div> |
| <p class="note" role="note"><span class="marker">Note:</span> This defines <code class="idl"><a data-link-type="idl" href="#exceptiondef-compileerror" id="ref-for-exceptiondef-compileerror④">CompileError</a></code>, <code class="idl"><a data-link-type="idl" href="#exceptiondef-linkerror" id="ref-for-exceptiondef-linkerror⑨">LinkError</a></code>, and <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror②">RuntimeError</a></code> classes on the <code class="idl"><a data-link-type="idl" href="#namespacedef-webassembly" id="ref-for-namespacedef-webassembly⑨">WebAssembly</a></code> namespace, which are produced by the APIs defined in this specification. |
| They expose the same interface as native JavaScript errors like <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror" id="ref-for-sec-native-error-types-used-in-this-standard-typeerror②⑤">TypeError</a></code> and <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror①①">RangeError</a></code>.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> It is not currently possible to define this behavior using Web IDL.</p> |
| <h2 class="heading settled" data-level="6" id="builtins"><span class="secno">6. </span><span class="content">Builtins</span><a class="self-link" href="#builtins"></a></h2> |
| <p>The JS-API defines sets of builtin functions which can be imported through <code class="idl"><a data-link-type="idl" href="#dictdef-webassemblycompileoptions" id="ref-for-dictdef-webassemblycompileoptions⑤">options</a></code> when compiling a module. WebAssembly builtin functions mirror existing JavaScript builtins, but adapt them to be useable directly as WebAssembly functions with minimal overhead.</p> |
| <p>All builtin functions are grouped into sets. Every builtin set has a <dfn class="dfn-paneled" data-dfn-for="builtin-set" data-dfn-type="dfn" data-noexport id="builtin-set-name"><var>name</var></dfn> that is used in <code class="idl"><a data-link-type="idl" href="#dictdef-webassemblycompileoptions" id="ref-for-dictdef-webassemblycompileoptions⑥">WebAssemblyCompileOptions</a></code>, and a <dfn class="dfn-paneled" data-dfn-for="builtin-set" data-dfn-type="dfn" data-noexport id="builtin-set-qualified-name"><var>qualified name</var></dfn> with a <code>wasm:</code> prefix that <a data-link-type="dfn" href="#read-the-imports" id="ref-for-read-the-imports②">is used during import lookup</a>.</p> |
| <div class="algorithm" data-algorithm="get the builtins for a builtin set"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="get-the-builtins-for-a-builtin-set">get the builtins for a builtin set</dfn> with <var>builtinSetName</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>Return a list of (<var>name</var>, <var>funcType</var>, <var>steps</var>) for the set with name <var>builtinSetName</var> defined within this section.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="find a builtin"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="find-a-builtin">find a builtin</dfn> with <var>import</var> and enabled builtins <var>builtinSetNames</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <a data-link-type="dfn" href="#validate-builtin-set-names" id="ref-for-validate-builtin-set-names①">validate builtin set names</a> <var>builtinSetNames</var> is true.</p> |
| <li data-md> |
| <p>Let <var>importModuleName</var> be <var>import</var>[0].</p> |
| <li data-md> |
| <p>Let <var>importName</var> be <var>import</var>[1].</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate①④">For each</a> <var>builtinSetName</var> of <var>builtinSetNames</var>,</p> |
| <ol> |
| <li data-md> |
| <p>If <var>builtinSetName</var> does not refer to a builtin set, then <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#iteration-continue" id="ref-for-iteration-continue④">continue</a>.</p> |
| <li data-md> |
| <p>Let <var>builtinSetQualifiedName</var> be <var>builtinSetName</var> prefixed with "wasm:".</p> |
| <li data-md> |
| <p>If <var>importModuleName</var> equals <var>builtinSetQualifiedName</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>builtins</var> be the result of <a data-link-type="dfn" href="#get-the-builtins-for-a-builtin-set" id="ref-for-get-the-builtins-for-a-builtin-set">get the builtins for a builtin set</a> <var>builtinSetName</var>.</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate①⑤">For each</a> <var>builtin</var> of <var>builtins</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>builtinName</var> be <var>builtin</var>[0].</p> |
| <li data-md> |
| <p>If <var>importName</var> equals <var>builtinName</var>, return (<var>builtinSetName</var>, <var>builtin</var>).</p> |
| </ol> |
| </ol> |
| </ol> |
| <li data-md> |
| <p>Return null.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="validate builtin set names"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="validate-builtin-set-names">validate builtin set names</dfn> with <var>builtinSetNames</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>If <var>builtinSetNames</var> contains any duplicates, return false.</p> |
| <li data-md> |
| <p>Return true.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="create a builtin function"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="create-a-builtin-function">create a builtin function</dfn> from type <var>funcType</var> and execution steps <var>steps</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>hostfunc</var> be a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostfunc" id="ref-for-syntax-hostfunc①">host function</a> which executes <var>steps</var> when called.</p> |
| <li data-md> |
| <p>Let (<var>store</var>, <var>funcaddr</var>) be <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-alloc" id="ref-for-embed-func-alloc①">func_alloc</a>(<var>store</var>, <var>functype</var>, <var>hostfunc</var>).</p> |
| <li data-md> |
| <p>Set the <a data-link-type="dfn" href="https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent" id="ref-for-surrounding-agent⑤⓪">surrounding agent</a>’s <a data-link-type="dfn" href="#associated-store" id="ref-for-associated-store④②">associated store</a> to <var>store</var>.</p> |
| <li data-md> |
| <p>Return <var>funcaddr</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="instantiate a builtin set"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="instantiate-a-builtin-set">instantiate a builtin set</dfn> with name <var>builtinSetName</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>builtins</var> be the result of <a data-link-type="dfn" href="#get-the-builtins-for-a-builtin-set" id="ref-for-get-the-builtins-for-a-builtin-set①">get the builtins for a builtin set</a> <var>builtinSetName</var>.</p> |
| <li data-md> |
| <p>Let <var>exportsObject</var> be <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④①">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-ordinaryobjectcreate" id="ref-for-sec-ordinaryobjectcreate②">OrdinaryObjectCreate</a>(null).</p> |
| <li data-md> |
| <p><a data-link-type="dfn" href="https://infra.spec.whatwg.org/#list-iterate" id="ref-for-list-iterate①⑥">For each</a> (<var>name</var>, <var>funcType</var>, <var>steps</var>) of <var>builtins</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>funcaddr</var> be the result fo <a data-link-type="dfn" href="#create-a-builtin-function" id="ref-for-create-a-builtin-function">create a builtin function</a> with <var>funcType</var> and <var>steps</var>.</p> |
| <li data-md> |
| <p>Let <var>func</var> be the result of creating <a data-link-type="dfn" href="#a-new-exported-function" id="ref-for-a-new-exported-function②">a new Exported Function</a> from <var>funcaddr</var>.</p> |
| <li data-md> |
| <p>Let <var>value</var> be <var>func</var>.</p> |
| <li data-md> |
| <p>Let <var>status</var> be <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④②">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createdataproperty" id="ref-for-sec-createdataproperty②">CreateDataProperty</a>(<var>exportsObject</var>, <var>name</var>, <var>value</var>).</p> |
| <li data-md> |
| <p class="assertion">Assert: <var>status</var> is true.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>exportsObject</var>.</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="validate an import for builtins"> |
| <p>To <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="validate-an-import-for-builtins">validate an import for builtins</dfn> with <var>import</var>, enabled builtins <var>builtinSetNames</var>, perform the following steps:</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <a data-link-type="dfn" href="#validate-builtin-set-names" id="ref-for-validate-builtin-set-names②">validate builtin set names</a> <var>builtinSetNames</var> is true.</p> |
| <li data-md> |
| <p>Let <var>maybeBuiltin</var> be the result of <a data-link-type="dfn" href="#find-a-builtin" id="ref-for-find-a-builtin①">finding a builtin</a> for <var>import</var> and <var>builtinSetNames</var>.</p> |
| <li data-md> |
| <p>If <var>maybeBuiltin</var> is null, return true.</p> |
| <li data-md> |
| <p>Let <var>importExternType</var> be <var>import</var>[2].</p> |
| <li data-md> |
| <p>Let <var>builtinFuncType</var> be <var>maybeBuiltin</var>[0][1].</p> |
| <li data-md> |
| <p>Let <var>builtinExternType</var> be <code>func |builtinFuncType|</code>.</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-externtype" id="ref-for-embed-match-externtype①">match_externtype</a>(<var>builtinExternType</var>, <var>importExternType</var>).</p> |
| </ol> |
| </div> |
| <h3 class="heading settled" data-level="6.1" id="builtins-js-string"><span class="secno">6.1. </span><span class="content">String Builtins</span><a class="self-link" href="#builtins-js-string"></a></h3> |
| <p>String builtins adapt the interface of the <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-string-object" id="ref-for-sec-string-object">String</a> builtin object. The <a data-link-type="dfn" href="#builtin-set-name" id="ref-for-builtin-set-name">name</a> for this set is <code>js-string</code>, and the <a data-link-type="dfn" href="#builtin-set-qualified-name" id="ref-for-builtin-set-qualified-name">qualified name</a> is <code>wasm:js-string</code>.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> The algorithms in this section refer to JS builtins defined on <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-string-object" id="ref-for-sec-string-object①">String</a>. These refer to the actual builtin and do not perform a dynamic lookup on the <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-string-object" id="ref-for-sec-string-object②">String</a> object.</p> |
| <h4 class="heading settled" data-level="6.1.1" id="builtins-js-string-abstract-ops"><span class="secno">6.1.1. </span><span class="content">Abstract operations</span><a class="self-link" href="#builtins-js-string-abstract-ops"></a></h4> |
| <div class="algorithm" data-algorithm="UnwrapString"> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="abstract-op" data-export data-lt="UnwrapString" id="abstract-opdef-unwrapstring">UnwrapString(<var>v</var>)</dfn> abstract operation, when invoked, performs the following steps:</p> |
| <ol> |
| <li data-md> |
| <p>If <var>v</var> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-string-type" id="ref-for-sec-ecmascript-language-types-string-type">is not a String</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror③">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>v</var></p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="FromCharCode"> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="abstract-op" data-export data-lt="FromCharCode" id="abstract-opdef-fromcharcode">FromCharCode(<var>v</var>)</dfn> abstract operation, when invoked, performs the following steps:</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>v</var> is of type <a data-link-type="dfn" data-refhint-key="1eccdce5" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype①②">i32</a>.</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④③">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call" id="ref-for-sec-call①">Call</a>(<a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-string.fromcharcode" id="ref-for-sec-string.fromcharcode">String.fromCharCode</a>, undefined, « <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue⑦">ToJSValue</a>(<var>v</var>) »).</p> |
| </ol> |
| </div> |
| <div class="algorithm" data-algorithm="CharCodeAt"> |
| <p>The <dfn class="dfn-paneled" data-dfn-type="abstract-op" data-export data-lt="CharCodeAt" id="abstract-opdef-charcodeat">CharCodeAt(<var>string</var>, <var>index</var>)</dfn> abstract operation, when invoked, performs the following steps:</p> |
| <ol> |
| <li data-md> |
| <p class="assertion">Assert: <var>index</var> is of type <a data-link-type="dfn" data-refhint-key="1eccdce5" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype①③">i32</a>.</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④④">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call" id="ref-for-sec-call②">Call</a>(<a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-string.prototype.charcodeat" id="ref-for-sec-string.prototype.charcodeat">String.prototype.charCodeAt</a>, <var>string</var>, « <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue⑧">ToJSValue</a>(<var>index</var>) »).</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.2" id="js-string-cast"><span class="secno">6.1.2. </span><span class="content">cast</span><a class="self-link" href="#js-string-cast"></a></h4> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param externref) (result externref)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-cast"> |
| <p>When this builtin is invoked with parameter <var>v</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④⑤">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring">UnwrapString</a>(<var>v</var>)</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.3" id="js-string-test"><span class="secno">6.1.3. </span><span class="content">test</span><a class="self-link" href="#js-string-test"></a></h4> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param externref) (result i32)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-test"> |
| <p>When this builtin is invoked with parameter <var>v</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>If <var>v</var> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-string-type" id="ref-for-sec-ecmascript-language-types-string-type①">is not a String</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Return 0.</p> |
| </ol> |
| <li data-md> |
| <p>Return 1.</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.4" id="js-string-fromCharCodeArray"><span class="secno">6.1.4. </span><span class="content">fromCharCodeArray</span><a class="self-link" href="#js-string-fromCharCodeArray"></a></h4> |
| <p>Let <var>arrayType</var> be <code>(rec (type (array (mut i16)))).0</code>.</p> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param (ref null arrayType) i32 i32) (result externref)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-fromCharCodeArray"> |
| <p>When this builtin is invoked with parameters <var>array</var>, <var>start</var>, and <var>end</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>If <var>array</var> is null,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror④">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap①">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>length</var> be the number of elements in <var>array</var>.</p> |
| <li data-md> |
| <p>If <var>start</var> > <var>end</var> or <var>end</var> > <var>length</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror⑤">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap②">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>result</var> be the empty string.</p> |
| <li data-md> |
| <p>Let <var>i</var> be <var>start</var>.</p> |
| <li data-md> |
| <p>While <var>i</var> < <var>end</var>:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>charCode</var> be the value of the element stored at index <var>i</var> in <var>array</var>.</p> |
| <li data-md> |
| <p>Let <var>charCodeString</var> be <a data-link-type="abstract-op" href="#abstract-opdef-fromcharcode" id="ref-for-abstract-opdef-fromcharcode">FromCharCode</a>(<var>charCode</var>).</p> |
| <li data-md> |
| <p>Let <var>result</var> be the concatenation of <var>result</var> and <var>charCodeString</var>.</p> |
| <li data-md> |
| <p>Set <var>i</var> to <var>i</var> + 1.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>result</var>.</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.5" id="js-string-intoCharCodeArray"><span class="secno">6.1.5. </span><span class="content">intoCharCodeArray</span><a class="self-link" href="#js-string-intoCharCodeArray"></a></h4> |
| <p>Let <var>arrayType</var> be <code>(rec (type (array (mut i16)))).0</code>.</p> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param externref (ref null arrayType) i32) (result i32)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-intoCharCodeArray"> |
| <p>When this builtin is invoked with parameters <var>string</var>, <var>array</var>, and <var>start</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>If <var>array</var> is null,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror⑥">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap③">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>string</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④⑥">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring①">UnwrapString</a>(<var>string</var>).</p> |
| <li data-md> |
| <p>Let <var>stringLength</var> be the <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#string-length" id="ref-for-string-length">length</a> of <var>string</var>.</p> |
| <li data-md> |
| <p>Let <var>arrayLength</var> be the number of elements in <var>array</var>.</p> |
| <li data-md> |
| <p>If <var>start</var> + <var>stringLength</var> > <var>arrayLength</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror⑦">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap④">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>Let <var>i</var> be 0.</p> |
| <li data-md> |
| <p>While <var>i</var> < <var>stringLength</var>:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>charCode</var> be <a data-link-type="abstract-op" href="#abstract-opdef-charcodeat" id="ref-for-abstract-opdef-charcodeat">CharCodeAt</a>(<var>string</var>, <var>i</var>).</p> |
| <li data-md> |
| <p>Set the element at index <var>start</var> + <var>i</var> in <var>array</var> to <a data-link-type="dfn" href="#towebassemblyvalue" id="ref-for-towebassemblyvalue①③">ToWebAssemblyValue</a>(<var>charCode</var>).</p> |
| <li data-md> |
| <p>Set <var>i</var> to <var>i</var> + 1.</p> |
| </ol> |
| <li data-md> |
| <p>Return <var>stringLength</var>.</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.6" id="js-string-fromCharCode"><span class="secno">6.1.6. </span><span class="content">fromCharCode</span><a class="self-link" href="#js-string-fromCharCode"></a></h4> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param i32) (result externref)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-fromCharCode"> |
| <p>When this builtin is invoked with parameter <var>v</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>Return <a data-link-type="abstract-op" href="#abstract-opdef-fromcharcode" id="ref-for-abstract-opdef-fromcharcode①">FromCharCode</a>(<var>v</var>).</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.7" id="js-string-fromCodePoint"><span class="secno">6.1.7. </span><span class="content">fromCodePoint</span><a class="self-link" href="#js-string-fromCodePoint"></a></h4> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param i32) (result externref)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-fromCodePoint"> |
| <p>When this builtin is invoked with parameter <var>v</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>If <var>v</var> > 0x10ffff,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror⑧">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap⑤">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④⑦">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call" id="ref-for-sec-call③">Call</a>(<a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-string.fromcodepoint" id="ref-for-sec-string.fromcodepoint">String.fromCodePoint</a>, undefined, « <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue⑨">ToJSValue</a>(<var>v</var>) »).</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.8" id="js-string-charCodeAt"><span class="secno">6.1.8. </span><span class="content">charCodeAt</span><a class="self-link" href="#js-string-charCodeAt"></a></h4> |
| <p>The type of this function is <code>(rec (type (func (param externref i32) (result i32)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-charCodeAt"> |
| <p>When this builtin is invoked with parameters <var>string</var> and <var>index</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>string</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④⑧">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring②">UnwrapString</a>(<var>string</var>).</p> |
| <li data-md> |
| <p>Let <var>length</var> be the <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#string-length" id="ref-for-string-length①">length</a> of <var>string</var>.</p> |
| <li data-md> |
| <p>If <var>index</var> >= <var>length</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror⑨">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap⑥">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>Return <a data-link-type="abstract-op" href="#abstract-opdef-charcodeat" id="ref-for-abstract-opdef-charcodeat①">CharCodeAt</a>(<var>string</var>, <var>index</var>).</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.9" id="js-string-codePointAt"><span class="secno">6.1.9. </span><span class="content">codePointAt</span><a class="self-link" href="#js-string-codePointAt"></a></h4> |
| <p>The type of this function is <code>(rec (type (func (param externref i32) (result i32)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-codePointAt"> |
| <p>When this builtin is invoked with parameters <var>string</var> and <var>index</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>string</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands④⑨">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring③">UnwrapString</a>(<var>string</var>).</p> |
| <li data-md> |
| <p>Let <var>length</var> be the <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#string-length" id="ref-for-string-length②">length</a> of <var>string</var>.</p> |
| <li data-md> |
| <p>If <var>index</var> >= <var>length</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror①⓪">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap⑦">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤⓪">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call" id="ref-for-sec-call④">Call</a>(<a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-string.prototype.codepointat" id="ref-for-sec-string.prototype.codepointat">String.prototype.codePointAt</a>, <var>string</var>, « <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue①⓪">ToJSValue</a>(<var>index</var>) »).</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.10" id="js-string-length"><span class="secno">6.1.10. </span><span class="content">length</span><a class="self-link" href="#js-string-length"></a></h4> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param externref) (result i32)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-length"> |
| <p>When this builtin is invoked with parameter <var>v</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>string</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤①">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring④">UnwrapString</a>(<var>v</var>).</p> |
| <li data-md> |
| <p>Return the <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#string-length" id="ref-for-string-length③">length</a> of <var>string</var>.</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.11" id="js-string-concat"><span class="secno">6.1.11. </span><span class="content">concat</span><a class="self-link" href="#js-string-concat"></a></h4> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param externref externref) (result externref)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-concat"> |
| <p>When this builtin is invoked with parameters <var>first</var> and <var>second</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>first</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤②">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring⑤">UnwrapString</a>(<var>first</var>).</p> |
| <li data-md> |
| <p>Let <var>second</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤③">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring⑥">UnwrapString</a>(<var>second</var>).</p> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤④">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call" id="ref-for-sec-call⑤">Call</a>(<a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-string.prototype.concat" id="ref-for-sec-string.prototype.concat">String.prototype.concat</a>, <var>first</var>, « <var>second</var> »).</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.12" id="js-string-substring"><span class="secno">6.1.12. </span><span class="content">substring</span><a class="self-link" href="#js-string-substring"></a></h4> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param externref i32 i32) (result externref)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-substring"> |
| <p>When this builtin is invoked with parameters <var>string</var>, <var>start</var>, and <var>end</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>string</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤⑤">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring⑦">UnwrapString</a>(<var>string</var>).</p> |
| <li data-md> |
| <p>Let <var>length</var> be the <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#string-length" id="ref-for-string-length④">length</a> of <var>string</var>.</p> |
| <li data-md> |
| <p>If <var>start</var> > <var>end</var> or <var>start</var> > <var>length</var>,</p> |
| <ol> |
| <li data-md> |
| <p>Return the empty string.</p> |
| </ol> |
| <li data-md> |
| <p>Return <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤⑥">!</a> <a data-link-type="abstract-op" href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call" id="ref-for-sec-call⑥">Call</a>(<a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-string.prototype.substring" id="ref-for-sec-string.prototype.substring">String.prototype.substring</a>, <var>string</var>, « <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue①①">ToJSValue</a>(<var>start</var>), <a data-link-type="dfn" href="#tojsvalue" id="ref-for-tojsvalue①②">ToJSValue</a>(<var>end</var>) »).</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.13" id="js-string-equals"><span class="secno">6.1.13. </span><span class="content">equals</span><a class="self-link" href="#js-string-equals"></a></h4> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param externref externref) (result i32)))).0</code>.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> Explicitly allow null strings to be compared for equality as that is meaningful.</p> |
| <div class="algorithm" data-algorithm="js-string-equals"> |
| <p>When this builtin is invoked with parameters <var>first</var> and <var>second</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>If <var>first</var> is not null and <var>first</var> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-string-type" id="ref-for-sec-ecmascript-language-types-string-type②">is not a String</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror①①">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap⑧">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>If <var>second</var> is not null and <var>second</var> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-string-type" id="ref-for-sec-ecmascript-language-types-string-type③">is not a String</a>,</p> |
| <ol> |
| <li data-md> |
| <p>Throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror①②">RuntimeError</a></code> exception as if a <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap" id="ref-for-syntax-trap⑨">trap</a> was executed.</p> |
| </ol> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤⑦">!</a> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-isstrictlyequal" id="ref-for-sec-isstrictlyequal">IsStrictlyEqual</a>(<var>first</var>, <var>second</var>) is true,</p> |
| <ol> |
| <li data-md> |
| <p>Return 1.</p> |
| </ol> |
| <li data-md> |
| <p>Return 0.</p> |
| </ol> |
| </div> |
| <h4 class="heading settled" data-level="6.1.14" id="js-string-compare"><span class="secno">6.1.14. </span><span class="content">compare</span><a class="self-link" href="#js-string-compare"></a></h4> |
| <p>The <var>funcType</var> of this builtin is <code>(rec (type (func (param externref externref) (result i32)))).0</code>.</p> |
| <div class="algorithm" data-algorithm="js-string-compare"> |
| <p>When this builtin is invoked with parameters <var>first</var> and <var>second</var>, the following steps must be run:</p> |
| <ol> |
| <li data-md> |
| <p>Let <var>first</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤⑧">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring⑧">UnwrapString</a>(<var>first</var>).</p> |
| <li data-md> |
| <p>Let <var>second</var> be <a data-link-type="dfn" data-refhint-key="e09fca85" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑤⑨">?</a> <a data-link-type="abstract-op" href="#abstract-opdef-unwrapstring" id="ref-for-abstract-opdef-unwrapstring⑨">UnwrapString</a>(<var>second</var>).</p> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑥⓪">!</a> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-isstrictlyequal" id="ref-for-sec-isstrictlyequal①">IsStrictlyEqual</a>(<var>first</var>, <var>second</var>) is true,</p> |
| <ol> |
| <li data-md> |
| <p>Return 0.</p> |
| </ol> |
| <li data-md> |
| <p>If <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands" id="ref-for-sec-returnifabrupt-shorthands⑥①">!</a> <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-islessthan" id="ref-for-sec-islessthan">IsLessThan</a>(<var>first</var>, <var>second</var>, true) is true,</p> |
| <ol> |
| <li data-md> |
| <p>Return -1.</p> |
| </ol> |
| <li data-md> |
| <p>Return 1.</p> |
| </ol> |
| </div> |
| <h2 class="heading settled" data-level="7" id="errors"><span class="secno">7. </span><span class="content">Error Condition Mappings to JavaScript</span><a class="self-link" href="#errors"></a></h2> |
| <p>Running WebAssembly programs encounter certain events which halt execution of the WebAssembly code. |
| WebAssembly code (currently) |
| has no way to catch these conditions and thus an exception will necessarily |
| propagate to the enclosing non-WebAssembly caller (whether it is a browser, |
| JavaScript or another runtime system) where it is handled like a normal JavaScript exception.</p> |
| <p>If WebAssembly calls JavaScript via import and the JavaScript throws an |
| exception, the exception is propagated through the WebAssembly activation to the |
| enclosing caller.</p> |
| <p>Because JavaScript exceptions can be handled, and JavaScript can continue to |
| call WebAssembly exports after a trap has been handled, traps do not, in |
| general, prevent future execution.</p> |
| <h3 class="heading settled" data-level="7.1" id="stack-overflow"><span class="secno">7.1. </span><span class="content">Stack Overflow</span><a class="self-link" href="#stack-overflow"></a></h3> |
| <p>Whenever a stack overflow occurs in |
| WebAssembly code, the same class of exception is thrown as for a stack overflow in |
| JavaScript. The particular exception here is implementation-defined in both cases.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> ECMAScript doesn’t specify any sort of behavior on stack overflow; implementations have been observed to throw <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror①②">RangeError</a></code>, InternalError or Error. Any is valid here.</p> |
| <h3 class="heading settled" data-level="7.2" id="out-of-memory"><span class="secno">7.2. </span><span class="content">Out of Memory</span><a class="self-link" href="#out-of-memory"></a></h3> |
| <p>Whenever validation, compilation or instantiation run out of memory, the |
| same class of exception is thrown as for out of memory conditions in JavaScript. |
| The particular exception here is implementation-defined in both cases.</p> |
| <p class="note" role="note"><span class="marker">Note:</span> ECMAScript doesn’t specify any sort of behavior on out-of-memory conditions; implementations have been observed to throw OOMError and to crash. Either is valid here.</p> |
| <div class="issue" id="issue-7eafcf54"> |
| <a class="self-link" href="#issue-7eafcf54"></a> |
| A failed allocation of a large table or memory may either result in |
| |
| <ul> |
| <li data-md> |
| <p>a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror" id="ref-for-sec-native-error-types-used-in-this-standard-rangeerror①③">RangeError</a></code>, as specified in the <code class="idl"><a data-link-type="idl" href="#memory" id="ref-for-memory⑧">Memory</a></code> <code class="idl"><a data-link-type="idl" href="#dom-memory-grow" id="ref-for-dom-memory-grow①">grow()</a></code> and <code class="idl"><a data-link-type="idl" href="#table" id="ref-for-table⑥">Table</a></code> <code class="idl"><a data-link-type="idl" href="#dom-table-grow" id="ref-for-dom-table-grow①">grow()</a></code> operations</p> |
| <li data-md> |
| <p>returning -1 as the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/instructions.html#exec-memory-grow" id="ref-for-exec-memory-grow①">memory.grow</a> instruction</p> |
| <li data-md> |
| <p>UA-specific OOM behavior as described in this section.</p> |
| </ul> |
| In a future revision, we may reconsider more reliable and recoverable errors for allocations of large amounts of memory. |
| |
| |
| <p>See <a href="https://github.com/WebAssembly/spec/issues/879">Issue 879</a> for further discussion.</p> |
| </div> |
| <h2 class="heading settled" data-level="8" id="limits"><span class="secno">8. </span><span class="content">Implementation-defined Limits</span><a class="self-link" href="#limits"></a></h2> |
| <p>The WebAssembly core specification allows an implementation to define limits on the syntactic structure of the module. |
| While each embedding of WebAssembly may choose to define its own limits, for predictability the standard WebAssembly JavaScript Interface described in this document defines the following exact limits. |
| An implementation must reject a module that exceeds one of the following limits with a <code class="idl"><a data-link-type="idl" href="#exceptiondef-compileerror" id="ref-for-exceptiondef-compileerror⑤">CompileError</a></code>. |
| In practice, an implementation may run out of resources for valid modules below these limits.</p> |
| <ul> |
| <li>The maximum size of a module is 1,073,741,824 bytes (1 GiB). |
| <li>The maximum number of types defined in the types section is 1,000,000. |
| <li>The maximum number of recursion groups defined in the types sections is 1,000,000. |
| <li>The maximum number of types defined in a recursion group is 1,000,000. |
| <li>The maximum depth of a defined subtype hierarchy is 63 (where a type defined with no supertype has depth 0). |
| |
| <li>The maximum number of functions defined in a module is 1,000,000. |
| <li>The maximum number of imports declared in a module is 1,000,000. |
| <li>The maximum number of exports declared in a module is 1,000,000. |
| <li>The maximum number of globals defined in a module is 1,000,000. |
| <li>The maximum number of tags defined in a module is 1,000,000. |
| <li>The maximum number of data segments defined in a module is 100,000. |
| <li>The maximum number of tables, including declared or imported tables, is 100,000. |
| <li>The maximum size of a table is 10,000,000. |
| <li>The maximum number of table entries in any table initialization is 10,000,000. |
| <li>The maximum number of memories, including defined and imported memories, is 100. |
| <li>The maximum <code>min</code> or <code>max</code> field of a 32-bit memory is 65,536 pages (4 GiB). |
| <li>The maximum <code>min</code> or <code>max</code> field of a 64-bit memory is 2^37-1 pages (2^53 - 2^16 bytes). |
| <li>The maximum number of parameters to any function or block is 1,000. |
| <li>The maximum number of return values for any function or block is 1,000. |
| <li>The maximum size of a function body, including locals declarations, is 7,654,321 bytes. |
| <li>The maximum number of locals declared in a function, including implicitly declared as parameters, is 50,000. |
| <li>The maximum number of fields in a struct is 10,000. |
| <li>The maximum number of operands to <code>array.new_fixed</code> is 10,000. |
| </ul> |
| <p>An implementation must throw a <code class="idl"><a data-link-type="idl" href="#exceptiondef-runtimeerror" id="ref-for-exceptiondef-runtimeerror①③">RuntimeError</a></code> if one of the following limits is exceeded during runtime: |
| In practice, an implementation may run out of resources for valid modules below these limits.</p> |
| <ul> |
| <li>The maximum size of a table is 10,000,000. |
| <li>The maximum size of a 32-bit memory is 65,536 pages (4 GiB). |
| <li>The maximum size of a 64-bit memory is 262,144 pages (16 GiB). |
| </ul> |
| <h2 class="heading settled" data-level="9" id="security-considerations"><span class="secno">9. </span><span class="content">Security and Privacy Considerations</span><a class="self-link" href="#security-considerations"></a></h2> |
| <p><em>This section is non-normative.</em></p> |
| <p>This document defines a host environment for WebAssembly. It enables a WebAssembly instance to <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/modules.html#syntax-import" id="ref-for-syntax-import">import</a> JavaScript objects and functions from an <a data-link-type="dfn" href="#read-the-imports" id="ref-for-read-the-imports③">import object</a>, but otherwise provides no access to the embedding environment. Thus a WebAssembly instance is bound to the same constraints as JavaScript.</p> |
| <h2 class="heading settled" data-level="10" id="change-history"><span class="secno">10. </span><span class="content">Change History</span><a class="self-link" href="#change-history"></a></h2> |
| <p><em>This section is non-normative.</em></p> |
| <p>Since the original release 1.0 of the WebAssembly specification, a number of proposals for extensions have been integrated. |
| The following sections provide an overview of what has changed.</p> |
| <h3 class="heading settled" data-level="10.1" id="release-20"><span class="secno">10.1. </span><span class="content">Release 2.0</span><a class="self-link" href="#release-20"></a></h3> |
| <h4 class="no-toc heading settled" id="changes-multivalue">Multiple Values<a class="self-link" href="#changes-multivalue"></a></h4> |
| |
| Multiple values can be returned to and from JavaScript functions as an <a data-link-type="dfn" href="https://tc39.github.io/ecma262/#sec-array-exotic-objects" id="ref-for-sec-array-exotic-objects">Array</a> object. |
| |
| |
| <h4 class="no-toc heading settled" id="changes-bigint">BigInt Integration<a class="self-link" href="#changes-bigint"></a></h4> |
| |
| WebAssembly <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype" id="ref-for-syntax-numtype①④">i64</a> values can be passed to and from JavaScript (via imported or exported globals, table get or set operations, function return values or arguments) as <a data-link-type="dfn" data-refhint-key="55e2e3f1" href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-bigint-type" id="ref-for-sec-ecmascript-language-types-bigint-type①">BigInt</a> objects. |
| |
| |
| <h4 class="no-toc heading settled" id="changes-reftypes">Reference Types<a class="self-link" href="#changes-reftypes"></a></h4> |
| |
| JavaScript values can be passed to and from WebAssembly (via imported or exported globals, table set or get operations, and function arguments or return values) as <a data-link-type="dfn" data-refhint-key="92193adb" href="https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype" id="ref-for-syntax-reftype②⓪">externref</a> values. |
| |
| |
| <h4 class="no-toc heading settled" id="changes-multitable">Multiple Tables<a class="self-link" href="#changes-multitable"></a></h4> |
| |
| Multiple tables can be exported and imported to and from JavaScript. |
| |
| |
| <h3 class="heading settled" data-level="10.2" id="release-30"><span class="secno">10.2. </span><span class="content">Release 3.0</span><a class="self-link" href="#release-30"></a></h3> |
| <h4 class="no-toc heading settled" id="changes-multimemory">Multiple Memories<a class="self-link" href="#changes-multimemory"></a></h4> |
| |
| Multiple memories can be exported and imported to and from JavaScript. |
| |
| |
| <h4 class="no-toc heading settled" id="changes-js-sb">JS String Builtins<a class="self-link" href="#changes-js-sb"></a></h4> |
| |
| Added a builtins option when compiling a module, and a collection of builtin functions for manipulating JS Strings. |
| |
| |
| |
| </main> |
| <div data-fill-with="conformance"> |
| <h2 class="no-ref no-num heading settled" id="w3c-conformance"><span class="content">Conformance</span><a class="self-link" href="#w3c-conformance"></a></h2> |
| <h3 class="no-ref no-num heading settled" id="w3c-conventions"><span class="content">Document conventions</span><a class="self-link" href="#w3c-conventions"></a></h3> |
| <p>Conformance requirements are expressed |
| with a combination of descriptive assertions |
| and RFC 2119 terminology. |
| The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” |
| in the normative parts of this document |
| are to be interpreted as described in RFC 2119. |
| However, for readability, |
| these words do not appear in all uppercase letters in this specification. |
| |
| </p> |
| <p>All of the text of this specification is normative |
| except sections explicitly marked as non-normative, examples, and notes. <a data-link-type="biblio" href="#biblio-rfc2119" title="Key words for use in RFCs to Indicate Requirement Levels">[RFC2119]</a> |
| |
| </p> |
| <p>Examples in this specification are introduced with the words “for example” |
| or are set apart from the normative text |
| with <code>class="example"</code>, |
| like this: |
| |
| </p> |
| <div class="example" id="w3c-example"> |
| <a class="self-link" href="#w3c-example"></a> |
| |
| <p>This is an example of an informative example. |
| </p> |
| </div> |
| <p>Informative notes begin with the word “Note” |
| and are set apart from the normative text |
| with <code>class="note"</code>, |
| like this: |
| |
| </p> |
| <p class="note" role="note">Note, this is an informative note.</p> |
| <section> |
| <h3 class="no-ref no-num heading settled" id="w3c-conformant-algorithms"><span class="content">Conformant Algorithms</span><a class="self-link" href="#w3c-conformant-algorithms"></a></h3> |
| <p>Requirements phrased in the imperative as part of algorithms |
| (such as "strip any leading space characters" |
| or "return false and abort these steps") |
| are to be interpreted with the meaning of the key word |
| ("must", "should", "may", etc) |
| used in introducing the algorithm. |
| |
| </p> |
| <p>Conformance requirements phrased as algorithms or specific steps |
| can be implemented in any manner, |
| so long as the end result is equivalent. |
| In particular, the algorithms defined in this specification |
| are intended to be easy to understand |
| and are not intended to be performant. |
| Implementers are encouraged to optimize. |
| </p> |
| </section> |
| </div> |
| <script src="https://www.w3.org/scripts/TR/2021/fixup.js"></script> |
| <h2 class="no-num no-ref heading settled" id="index"><span class="content">Index</span><a class="self-link" href="#index"></a></h2> |
| <h3 class="no-num no-ref heading settled" id="index-defined-here"><span class="content">Terms defined by this specification</span><a class="self-link" href="#index-defined-here"></a></h3> |
| <ul class="index"> |
| <li><a href="#HostResizeArrayBuffer">abstract operation HostResizeArrayBuffer</a><span>, in § 5.3</span> |
| <li> |
| address |
| <ul> |
| <li><a href="#dom-memorydescriptor-address">dict-member for MemoryDescriptor</a><span>, in § 5.3</span> |
| <li><a href="#dom-tabledescriptor-address">dict-member for TableDescriptor</a><span>, in § 5.4</span> |
| </ul> |
| <li><a href="#enumdef-addresstype">AddressType</a><span>, in § 5.1</span> |
| <li><a href="#typedefdef-addressvalue">AddressValue</a><span>, in § 5.1</span> |
| <li><a href="#addressvaluetou64">AddressValueToU64</a><span>, in § 5.6</span> |
| <li><a href="#a-new-exported-function">a new Exported Function</a><span>, in § 5.6</span> |
| <li><a href="#a-new-exported-gc-object">a new Exported GC Object</a><span>, in § 5.8</span> |
| <li> |
| "anyfunc" |
| <ul> |
| <li><a href="#dom-tablekind-anyfunc">enum-value for TableKind</a><span>, in § 5.4</span> |
| <li><a href="#dom-valuetype-anyfunc">enum-value for ValueType</a><span>, in § 5.5</span> |
| </ul> |
| <li><a href="#associated-store">associated store</a><span>, in § 4.1</span> |
| <li><a href="#asynchronously-compile-a-webassembly-module">asynchronously compile a WebAssembly module</a><span>, in § 5</span> |
| <li><a href="#asynchronously-instantiate-a-webassembly-module">asynchronously instantiate a WebAssembly module</a><span>, in § 5</span> |
| <li><a href="#dom-memory-buffer">buffer</a><span>, in § 5.3</span> |
| <li><a href="#dom-webassemblycompileoptions-builtins">builtins</a><span>, in § 5</span> |
| <li><a href="#call-an-exported-function">call an Exported Function</a><span>, in § 5.6</span> |
| <li><a href="#abstract-opdef-charcodeat">CharCodeAt</a><span>, in § 6.1.1</span> |
| <li><a href="#compile-a-webassembly-module">compile a WebAssembly module</a><span>, in § 5</span> |
| <li><a href="#dom-webassembly-compile">compile(bytes)</a><span>, in § 5</span> |
| <li><a href="#dom-webassembly-compile">compile(bytes, options)</a><span>, in § 5</span> |
| <li><a href="#exceptiondef-compileerror">CompileError</a><span>, in § 5.10</span> |
| <li><a href="#construct-a-webassembly-module-object">construct a WebAssembly module object</a><span>, in § 5</span> |
| <li><a href="#dom-module-module">constructor(bytes)</a><span>, in § 5.1</span> |
| <li><a href="#dom-module-module">constructor(bytes, options)</a><span>, in § 5.1</span> |
| <li> |
| constructor(descriptor) |
| <ul> |
| <li><a href="#dom-global-global">constructor for Global</a><span>, in § 5.5</span> |
| <li><a href="#dom-memory-memory">constructor for Memory</a><span>, in § 5.3</span> |
| <li><a href="#dom-table-table">constructor for Table</a><span>, in § 5.4</span> |
| </ul> |
| <li><a href="#dom-global-global">constructor(descriptor, v)</a><span>, in § 5.5</span> |
| <li><a href="#dom-table-table">constructor(descriptor, value)</a><span>, in § 5.4</span> |
| <li><a href="#dom-exception-exception">constructor(exceptionTag, payload)</a><span>, in § 5.9</span> |
| <li><a href="#dom-exception-exception">constructor(exceptionTag, payload, options)</a><span>, in § 5.9</span> |
| <li><a href="#dom-instance-instance">constructor(module)</a><span>, in § 5.2</span> |
| <li><a href="#dom-instance-instance">constructor(module, importObject)</a><span>, in § 5.2</span> |
| <li><a href="#dom-tag-tag">constructor(type)</a><span>, in § 5.7.1</span> |
| <li><a href="#create-a-builtin-function">create a builtin function</a><span>, in § 6</span> |
| <li><a href="#create-a-fixed-length-memory-buffer">create a fixed length memory buffer</a><span>, in § 5.3</span> |
| <li><a href="#create-a-global-object">create a global object</a><span>, in § 5.5</span> |
| <li><a href="#create-a-host-function">create a host function</a><span>, in § 5.6</span> |
| <li><a href="#create-a-memory-object">create a memory object</a><span>, in § 5.3</span> |
| <li><a href="#create-an-exception-object">create an Exception object</a><span>, in § 5.9</span> |
| <li><a href="#create-an-exports-object">create an exports object</a><span>, in § 5</span> |
| <li><a href="#create-a-resizable-memory-buffer">create a resizable memory buffer</a><span>, in § 5.3</span> |
| <li><a href="#create-a-table-object">create a table object</a><span>, in § 5.4</span> |
| <li><a href="#create-a-tag-object">create a Tag object</a><span>, in § 5.7.1</span> |
| <li><a href="#dom-module-customsections">customSections(moduleObject, sectionName)</a><span>, in § 5.1</span> |
| <li><a href="#defaultvalue">DefaultValue</a><span>, in § 5.5</span> |
| <li><a href="#defineownproperty-internal-method-of-an-exported-gc-object">[[DefineOwnProperty]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#delete-internal-method-of-an-exported-gc-object">[[Delete]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#dom-tabledescriptor-element">element</a><span>, in § 5.4</span> |
| <li><a href="#exception">Exception</a><span>, in § 5.9</span> |
| <li><a href="#dom-exception-exception">Exception(exceptionTag, payload)</a><span>, in § 5.9</span> |
| <li><a href="#dom-exception-exception">Exception(exceptionTag, payload, options)</a><span>, in § 5.9</span> |
| <li><a href="#exception-object-cache">Exception object cache</a><span>, in § 4.2</span> |
| <li><a href="#dictdef-exceptionoptions">ExceptionOptions</a><span>, in § 5.9</span> |
| <li><a href="#exported-function">Exported Function</a><span>, in § 5.6</span> |
| <li><a href="#exported-function-cache">Exported Function cache</a><span>, in § 4.2</span> |
| <li><a href="#exported-gc-object">Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#exported-gc-object-cache">Exported GC Object cache</a><span>, in § 4.2</span> |
| <li><a href="#dom-instance-exports">exports</a><span>, in § 5.2</span> |
| <li><a href="#dom-module-exports">exports(moduleObject)</a><span>, in § 5.1</span> |
| <li> |
| "externref" |
| <ul> |
| <li><a href="#dom-tablekind-externref">enum-value for TableKind</a><span>, in § 5.4</span> |
| <li><a href="#dom-valuetype-externref">enum-value for ValueType</a><span>, in § 5.5</span> |
| </ul> |
| <li><a href="#dom-valuetype-f32">"f32"</a><span>, in § 5.5</span> |
| <li><a href="#dom-valuetype-f64">"f64"</a><span>, in § 5.5</span> |
| <li><a href="#find-a-builtin">find a builtin</a><span>, in § 6</span> |
| <li><a href="#abstract-opdef-fromcharcode">FromCharCode</a><span>, in § 6.1.1</span> |
| <li><a href="#dom-importexportkind-function">"function"</a><span>, in § 5.1</span> |
| <li><a href="#dom-exception-getarg">getArg(index)</a><span>, in § 5.9</span> |
| <li><a href="#getglobalvalue">GetGlobalValue</a><span>, in § 5.5</span> |
| <li><a href="#dom-table-get">get(index)</a><span>, in § 5.4</span> |
| <li><a href="#get-internal-method-of-an-exported-gc-object">[[Get]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#getownproperty-internal-method-of-an-exported-gc-object">[[GetOwnProperty]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#getprototypeof-internal-method-of-an-exported-gc-object">[[GetPrototypeOf]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#get-the-builtins-for-a-builtin-set">get the builtins for a builtin set</a><span>, in § 6</span> |
| <li><a href="#get-the-javascript-exception-tag">get the JavaScript exception tag</a><span>, in § 5.9.1</span> |
| <li><a href="#dom-importexportkind-global">"global"</a><span>, in § 5.1</span> |
| <li><a href="#global">Global</a><span>, in § 5.5</span> |
| <li><a href="#dom-global-global">Global(descriptor)</a><span>, in § 5.5</span> |
| <li><a href="#dictdef-globaldescriptor">GlobalDescriptor</a><span>, in § 5.5</span> |
| <li><a href="#dom-global-global">Global(descriptor, v)</a><span>, in § 5.5</span> |
| <li><a href="#global-object-cache">Global object cache</a><span>, in § 4.2</span> |
| <li> |
| grow(delta) |
| <ul> |
| <li><a href="#dom-memory-grow">method for Memory</a><span>, in § 5.3</span> |
| <li><a href="#dom-table-grow">method for Table</a><span>, in § 5.4</span> |
| </ul> |
| <li><a href="#dom-table-grow">grow(delta, value)</a><span>, in § 5.4</span> |
| <li><a href="#grow-the-memory-buffer">grow the memory buffer</a><span>, in § 5.3</span> |
| <li><a href="#hasproperty-internal-method-of-an-exported-gc-object">[[HasProperty]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#host-value-cache">Host value cache</a><span>, in § 4.2</span> |
| <li> |
| "i32" |
| <ul> |
| <li><a href="#dom-addresstype-i32">enum-value for AddressType</a><span>, in § 5.1</span> |
| <li><a href="#dom-valuetype-i32">enum-value for ValueType</a><span>, in § 5.5</span> |
| </ul> |
| <li> |
| "i64" |
| <ul> |
| <li><a href="#dom-addresstype-i64">enum-value for AddressType</a><span>, in § 5.1</span> |
| <li><a href="#dom-valuetype-i64">enum-value for ValueType</a><span>, in § 5.5</span> |
| </ul> |
| <li><a href="#identified-with">identified with</a><span>, in § 4.1</span> |
| <li><a href="#dom-webassemblycompileoptions-importedstringconstants">importedStringConstants</a><span>, in § 5</span> |
| <li><a href="#enumdef-importexportkind">ImportExportKind</a><span>, in § 5.1</span> |
| <li><a href="#dom-module-imports">imports(moduleObject)</a><span>, in § 5.1</span> |
| <li><a href="#index-of-the-host-function">index of the host function</a><span>, in § 5</span> |
| <li> |
| initial |
| <ul> |
| <li><a href="#dom-memorydescriptor-initial">dict-member for MemoryDescriptor</a><span>, in § 5.3</span> |
| <li><a href="#dom-tabledescriptor-initial">dict-member for TableDescriptor</a><span>, in § 5.4</span> |
| </ul> |
| <li><a href="#initialize-a-global-object">initialize a global object</a><span>, in § 5.5</span> |
| <li><a href="#initialize-a-memory-object">initialize a memory object</a><span>, in § 5.3</span> |
| <li><a href="#initialize-an-exception-object">initialize an Exception object</a><span>, in § 5.9</span> |
| <li><a href="#initialize-an-instance-object">initialize an instance object</a><span>, in § 5</span> |
| <li><a href="#initialize-a-table-object">initialize a table object</a><span>, in § 5.4</span> |
| <li><a href="#initialize-a-tag-object">initialize a Tag object</a><span>, in § 5.7.1</span> |
| <li><a href="#instance">Instance</a><span>, in § 5.2</span> |
| <li><a href="#dom-webassemblyinstantiatedsource-instance">instance</a><span>, in § 5</span> |
| <li><a href="#dom-instance-instance">Instance(module)</a><span>, in § 5.2</span> |
| <li><a href="#dom-instance-instance">Instance(module, importObject)</a><span>, in § 5.2</span> |
| <li><a href="#instantiate-a-builtin-set">instantiate a builtin set</a><span>, in § 6</span> |
| <li><a href="#instantiate-a-promise-of-a-module">instantiate a promise of a module</a><span>, in § 5</span> |
| <li><a href="#dom-webassembly-instantiate">instantiate(bytes)</a><span>, in § 5</span> |
| <li><a href="#dom-webassembly-instantiate">instantiate(bytes, importObject)</a><span>, in § 5</span> |
| <li><a href="#dom-webassembly-instantiate">instantiate(bytes, importObject, options)</a><span>, in § 5</span> |
| <li><a href="#instantiate-imported-strings">instantiate imported strings</a><span>, in § 5</span> |
| <li><a href="#dom-webassembly-instantiate-moduleobject-importobject">instantiate(moduleObject)</a><span>, in § 5</span> |
| <li><a href="#dom-webassembly-instantiate-moduleobject-importobject">instantiate(moduleObject, importObject)</a><span>, in § 5</span> |
| <li><a href="#instantiate-the-core-of-a-webassembly-module">instantiate the core of a WebAssembly module</a><span>, in § 5</span> |
| <li><a href="#dom-exception-is">is(exceptionTag)</a><span>, in § 5.9</span> |
| <li><a href="#isextensible-internal-method-of-an-exported-gc-object">[[IsExtensible]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#javascript-exception-tag">JavaScript exception tag</a><span>, in § 5.9.1</span> |
| <li><a href="#dom-webassembly-jstag">JSTag</a><span>, in § 5</span> |
| <li> |
| kind |
| <ul> |
| <li><a href="#dom-moduleexportdescriptor-kind">dict-member for ModuleExportDescriptor</a><span>, in § 5.1</span> |
| <li><a href="#dom-moduleimportdescriptor-kind">dict-member for ModuleImportDescriptor</a><span>, in § 5.1</span> |
| </ul> |
| <li><a href="#dom-table-length">length</a><span>, in § 5.4</span> |
| <li><a href="#exceptiondef-linkerror">LinkError</a><span>, in § 5.10</span> |
| <li> |
| maximum |
| <ul> |
| <li><a href="#dom-memorydescriptor-maximum">dict-member for MemoryDescriptor</a><span>, in § 5.3</span> |
| <li><a href="#dom-tabledescriptor-maximum">dict-member for TableDescriptor</a><span>, in § 5.4</span> |
| </ul> |
| <li><a href="#dom-importexportkind-memory">"memory"</a><span>, in § 5.1</span> |
| <li><a href="#memory">Memory</a><span>, in § 5.3</span> |
| <li><a href="#dom-memory-memory">Memory(descriptor)</a><span>, in § 5.3</span> |
| <li><a href="#dictdef-memorydescriptor">MemoryDescriptor</a><span>, in § 5.3</span> |
| <li><a href="#memory-object-cache">Memory object cache</a><span>, in § 4.2</span> |
| <li><a href="#module">Module</a><span>, in § 5.1</span> |
| <li> |
| module |
| <ul> |
| <li><a href="#dom-moduleimportdescriptor-module">dict-member for ModuleImportDescriptor</a><span>, in § 5.1</span> |
| <li><a href="#dom-webassemblyinstantiatedsource-module">dict-member for WebAssemblyInstantiatedSource</a><span>, in § 5</span> |
| </ul> |
| <li><a href="#dom-module-module">Module(bytes)</a><span>, in § 5.1</span> |
| <li><a href="#dom-module-module">Module(bytes, options)</a><span>, in § 5.1</span> |
| <li><a href="#dictdef-moduleexportdescriptor">ModuleExportDescriptor</a><span>, in § 5.1</span> |
| <li><a href="#dictdef-moduleimportdescriptor">ModuleImportDescriptor</a><span>, in § 5.1</span> |
| <li><a href="#dom-globaldescriptor-mutable">mutable</a><span>, in § 5.5</span> |
| <li> |
| name |
| <ul> |
| <li><a href="#builtin-set-name">dfn for builtin-set</a><span>, in § 6</span> |
| <li><a href="#dom-moduleexportdescriptor-name">dict-member for ModuleExportDescriptor</a><span>, in § 5.1</span> |
| <li><a href="#dom-moduleimportdescriptor-name">dict-member for ModuleImportDescriptor</a><span>, in § 5.1</span> |
| </ul> |
| <li><a href="#name-of-the-webassembly-function">name of the WebAssembly function</a><span>, in § 5.6</span> |
| <li><a href="#ownpropertykeys-internal-method-of-an-exported-gc-object">[[OwnPropertyKeys]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#dom-tagtype-parameters">parameters</a><span>, in § 5.7.1</span> |
| <li><a href="#preventextensions-internal-method-of-an-exported-gc-object">[[PreventExtensions]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#builtin-set-qualified-name">qualified name</a><span>, in § 6</span> |
| <li><a href="#read-the-imports">read the imports</a><span>, in § 5</span> |
| <li><a href="#refresh-the-memory-buffer">refresh the Memory buffer</a><span>, in § 5.3</span> |
| <li><a href="#retrieving-a-host-value">retrieving a host value</a><span>, in § 5.6</span> |
| <li><a href="#run-a-host-function">run a host function</a><span>, in § 5.6</span> |
| <li><a href="#exceptiondef-runtimeerror">RuntimeError</a><span>, in § 5.10</span> |
| <li><a href="#dom-table-set">set(index)</a><span>, in § 5.4</span> |
| <li><a href="#dom-table-set">set(index, value)</a><span>, in § 5.4</span> |
| <li><a href="#set-internal-method-of-an-exported-gc-object">[[Set]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#setprototypeof-internal-method-of-an-exported-gc-object">[[SetPrototypeOf]] internal method of an Exported GC Object</a><span>, in § 5.8</span> |
| <li><a href="#dom-exception-stack">stack</a><span>, in § 5.9</span> |
| <li><a href="#string-value-of-the-extern-type">string value of the extern type</a><span>, in § 5.1</span> |
| <li><a href="#dom-importexportkind-table">"table"</a><span>, in § 5.1</span> |
| <li><a href="#table">Table</a><span>, in § 5.4</span> |
| <li><a href="#dom-table-table">Table(descriptor)</a><span>, in § 5.4</span> |
| <li><a href="#dictdef-tabledescriptor">TableDescriptor</a><span>, in § 5.4</span> |
| <li><a href="#dom-table-table">Table(descriptor, value)</a><span>, in § 5.4</span> |
| <li><a href="#enumdef-tablekind">TableKind</a><span>, in § 5.4</span> |
| <li><a href="#table-object-cache">Table object cache</a><span>, in § 4.2</span> |
| <li><a href="#dom-importexportkind-tag">"tag"</a><span>, in § 5.1</span> |
| <li><a href="#tag">Tag</a><span>, in § 5.7.1</span> |
| <li><a href="#tag_alloc">tag_alloc</a><span>, in § 5.7</span> |
| <li><a href="#tag-object-cache">Tag object cache</a><span>, in § 4.2</span> |
| <li><a href="#dom-tag-tag">Tag(type)</a><span>, in § 5.7.1</span> |
| <li><a href="#dictdef-tagtype">TagType</a><span>, in § 5.7.1</span> |
| <li><a href="#dom-memory-tofixedlengthbuffer">toFixedLengthBuffer()</a><span>, in § 5.3</span> |
| <li><a href="#tojsvalue">ToJSValue</a><span>, in § 5.6</span> |
| <li><a href="#dom-memory-toresizablebuffer">toResizableBuffer()</a><span>, in § 5.3</span> |
| <li><a href="#tovaluetype">ToValueType</a><span>, in § 5.5</span> |
| <li><a href="#towebassemblyvalue">ToWebAssemblyValue</a><span>, in § 5.6</span> |
| <li><a href="#dom-exceptionoptions-tracestack">traceStack</a><span>, in § 5.9</span> |
| <li><a href="#u64toaddressvalue">U64ToAddressValue</a><span>, in § 5.6</span> |
| <li><a href="#abstract-opdef-unwrapstring">UnwrapString</a><span>, in § 6.1.1</span> |
| <li><a href="#dom-valuetype-v128">"v128"</a><span>, in § 5.5</span> |
| <li><a href="#validate-an-import-for-builtins">validate an import for builtins</a><span>, in § 6</span> |
| <li><a href="#validate-builtins-and-imported-string-for-a-webassembly-module">validate builtins and imported string for a WebAssembly module</a><span>, in § 5</span> |
| <li><a href="#validate-builtin-set-names">validate builtin set names</a><span>, in § 6</span> |
| <li><a href="#dom-webassembly-validate">validate(bytes)</a><span>, in § 5</span> |
| <li><a href="#dom-webassembly-validate">validate(bytes, options)</a><span>, in § 5</span> |
| <li> |
| value |
| <ul> |
| <li><a href="#dom-global-value">attribute for Global</a><span>, in § 5.5</span> |
| <li><a href="#dom-globaldescriptor-value">dict-member for GlobalDescriptor</a><span>, in § 5.5</span> |
| </ul> |
| <li><a href="#dom-global-valueof">valueOf()</a><span>, in § 5.5</span> |
| <li><a href="#enumdef-valuetype">ValueType</a><span>, in § 5.5</span> |
| <li><a href="#namespacedef-webassembly">WebAssembly</a><span>, in § 5</span> |
| <li><a href="#dictdef-webassemblycompileoptions">WebAssemblyCompileOptions</a><span>, in § 5</span> |
| <li><a href="#dictdef-webassemblyinstantiatedsource">WebAssemblyInstantiatedSource</a><span>, in § 5</span> |
| </ul> |
| <h3 class="no-num no-ref heading settled" id="index-defined-elsewhere"><span class="content">Terms defined by reference</span><a class="self-link" href="#index-defined-elsewhere"></a></h3> |
| <ul class="index"> |
| <li> |
| <a data-link-type="biblio">[ECMASCRIPT]</a> defines the following terms: |
| <ul> |
| <li><span class="dfn-paneled" id="cd4b1dc4">!</span> |
| <li><span class="dfn-paneled" id="971914e6">%Symbol.iterator%</span> |
| <li><span class="dfn-paneled" id="ebb4ace3">?</span> |
| <li><span class="dfn-paneled" id="f17862f0">ArrayBuffer</span> |
| <li><span class="dfn-paneled" id="81131be0">Call</span> |
| <li><span class="dfn-paneled" id="4c6c6f05">CreateArrayFromList</span> |
| <li><span class="dfn-paneled" id="6df10f44">CreateBuiltinFunction</span> |
| <li><span class="dfn-paneled" id="d2c61922">CreateDataProperty</span> |
| <li><span class="dfn-paneled" id="750115f9">DefineMethodProperty</span> |
| <li><span class="dfn-paneled" id="d7a47d32">DetachArrayBuffer</span> |
| <li><span class="dfn-paneled" id="abf85593">Get</span> |
| <li><span class="dfn-paneled" id="d83ccb33">GetIteratorFromMethod</span> |
| <li><span class="dfn-paneled" id="5b7339ce">GetMethod</span> |
| <li><span class="dfn-paneled" id="dc07163b">IsCallable</span> |
| <li><span class="dfn-paneled" id="a2df2252">IteratorToList</span> |
| <li><span class="dfn-paneled" id="e2fb14e5">NumericToRawBytes</span> |
| <li><span class="dfn-paneled" id="ebbbef34">OrdinaryObjectCreate</span> |
| <li><span class="dfn-paneled" id="43564950">RangeError</span> |
| <li><span class="dfn-paneled" id="369594bc">SetIntegrityLevel</span> |
| <li><span class="dfn-paneled" id="4adb26f1">ToBigInt</span> |
| <li><span class="dfn-paneled" id="b29f5d72">ToBigInt64</span> |
| <li><span class="dfn-paneled" id="06f63be9">ToInt32</span> |
| <li><span class="dfn-paneled" id="9ab06711">ToNumber</span> |
| <li><span class="dfn-paneled" id="4a854a91">ToString</span> |
| <li><span class="dfn-paneled" id="58788f9d">TypeError</span> |
| <li><span class="dfn-paneled" id="a653126b">agent</span> |
| <li><span class="dfn-paneled" id="fa5c4242">agent cluster</span> |
| <li><span class="dfn-paneled" id="886dee79">Array</span> |
| <li><span class="dfn-paneled" id="49bbfc32">BigInt</span> |
| <li><span class="dfn-paneled" id="e8f0aed3">Built-in Function Objects</span> |
| <li><span class="dfn-paneled" id="b107f911">current Realm</span> |
| <li><span class="dfn-paneled" id="eca66c99">Data Block</span> |
| <li><span class="dfn-paneled" id="921f1639">is a Number</span> |
| <li><span class="dfn-paneled" id="adc63453">is not a BigInt</span> |
| <li><span class="dfn-paneled" id="4380dc8b">is not a Number</span> |
| <li><span class="dfn-paneled" id="836ae954">is not a String</span> |
| <li><span class="dfn-paneled" id="ef0b8e0c">is not an Object</span> |
| <li><span class="dfn-paneled" id="a7b8aad7">IsLessThan</span> |
| <li><span class="dfn-paneled" id="f2ca6ec5">IsStrictlyEqual</span> |
| <li><span class="dfn-paneled" id="9b36d7ac">MakeBasicObject</span> |
| <li><span class="dfn-paneled" id="4f4736a6">mathematical value</span> |
| <li><span class="dfn-paneled" id="f9dbc1a8">NativeError Object Structure</span> |
| <li><span class="dfn-paneled" id="01d93e6a">SameValue</span> |
| <li><span class="dfn-paneled" id="c48cd0b9">String</span> |
| <li><span class="dfn-paneled" id="f0590fd3">String.fromCharCode</span> |
| <li><span class="dfn-paneled" id="288fbd68">String.fromCodePoint</span> |
| <li><span class="dfn-paneled" id="19a9b79b">String.prototype.charCodeAt</span> |
| <li><span class="dfn-paneled" id="a5e80a0a">String.prototype.codePointAt</span> |
| <li><span class="dfn-paneled" id="74269a03">String.prototype.concat</span> |
| <li><span class="dfn-paneled" id="7b8dca78">String.prototype.substring</span> |
| <li><span class="dfn-paneled" id="4ad913ae">surrounding agent</span> |
| <li><span class="dfn-paneled" id="7b8e8458">ℝ</span> |
| <li><span class="dfn-paneled" id="8b2a5c87">ℤ</span> |
| <li><span class="dfn-paneled" id="c3b271ac">𝔽</span> |
| </ul> |
| <li> |
| <a data-link-type="biblio">[ENCODING]</a> defines the following terms: |
| <ul> |
| <li><span class="dfn-paneled" id="f256859a">UTF-8 decode without BOM or fail</span> |
| </ul> |
| <li> |
| <a data-link-type="biblio">[HTML]</a> defines the following terms: |
| <ul> |
| <li><span class="dfn-paneled" id="d5ac3b38">clean up after running a callback</span> |
| <li><span class="dfn-paneled" id="b6a1ae3f">clean up after running script</span> |
| <li><span class="dfn-paneled" id="a72449dd">in parallel</span> |
| <li><span class="dfn-paneled" id="d7af7adc">incumbent settings object</span> |
| <li><span class="dfn-paneled" id="b5c3b552">prepare to run a callback</span> |
| <li><span class="dfn-paneled" id="c2359c09">prepare to run script</span> |
| <li><span class="dfn-paneled" id="9a517a7d">queue a task</span> |
| <li><span class="dfn-paneled" id="7deb6835">settings object</span> |
| <li><span class="dfn-paneled" id="c3b2d08c">task source</span> |
| </ul> |
| <li> |
| <a data-link-type="biblio">[INFRA]</a> defines the following terms: |
| <ul> |
| <li><span class="dfn-paneled" id="53275e46">append</span> |
| <li><span class="dfn-paneled" id="f937b7b6">continue</span> |
| <li><span class="dfn-paneled" id="1243a891">exist</span> |
| <li><span class="dfn-paneled" id="6b815fdd">is empty</span> |
| <li><span class="dfn-paneled" id="f02cd417">iterate <small>(for list)</small></span> |
| <li><span class="dfn-paneled" id="efe8653e">iterate <small>(for map)</small></span> |
| <li><span class="dfn-paneled" id="0fa357c3">length</span> |
| <li><span class="dfn-paneled" id="649608b9">list</span> |
| <li><span class="dfn-paneled" id="84b454ff">ordered map</span> |
| <li><span class="dfn-paneled" id="0e6b2056">set</span> |
| <li><span class="dfn-paneled" id="0204d188">size</span> |
| </ul> |
| <li> |
| <a data-link-type="biblio">[RESIZABLEARRAYBUFFER PROPOSAL]</a> defines the following terms: |
| <ul> |
| <li><span class="dfn-paneled" id="5f3abfd0">HostResizeArrayBuffer</span> |
| <li><span class="dfn-paneled" id="3ed14caf">IsFixedLengthArrayBuffer</span> |
| </ul> |
| <li> |
| <a data-link-type="biblio">[WEBASSEMBLY]</a> defines the following terms: |
| <ul> |
| <li><span class="dfn-paneled" id="0656fbb6">+∞</span> |
| <li><span class="dfn-paneled" id="048283eb">address</span> |
| <li><span class="dfn-paneled" id="815c3a81">address type</span> |
| <li><span class="dfn-paneled" id="190fb93b">any</span> |
| <li><span class="dfn-paneled" id="a7f74307">array address</span> |
| <li><span class="dfn-paneled" id="2ad7bc40">canon</span> |
| <li><span class="dfn-paneled" id="a7321e13">const</span> |
| <li><span class="dfn-paneled" id="98bf2453">current frame</span> |
| <li><span class="dfn-paneled" id="06930779">custom section</span> |
| <li><span class="dfn-paneled" id="a43f3aaf">customsec</span> |
| <li><span class="dfn-paneled" id="61356085">embedding interface</span> |
| <li><span class="dfn-paneled" id="c44f39b6">error</span> |
| <li><span class="dfn-paneled" id="fcf11545">exception</span> |
| <li><span class="dfn-paneled" id="361dac10">exception address</span> |
| <li><span class="dfn-paneled" id="f3597ae0">exn_alloc</span> |
| <li><span class="dfn-paneled" id="56473266">exn_read</span> |
| <li><span class="dfn-paneled" id="903777ae">exn_tag</span> |
| <li><span class="dfn-paneled" id="e03ea6cc">exnref</span> |
| <li><span class="dfn-paneled" id="09d78e0f">extern</span> |
| <li><span class="dfn-paneled" id="c8c81d72">external value</span> |
| <li><span class="dfn-paneled" id="ef3c2587">externref</span> |
| <li><span class="dfn-paneled" id="9105068d">f32</span> |
| <li><span class="dfn-paneled" id="bb4be968">f32.const</span> |
| <li><span class="dfn-paneled" id="ffa3e8fc">f64</span> |
| <li><span class="dfn-paneled" id="16d0e7c3">f64.const</span> |
| <li><span class="dfn-paneled" id="486e6f39">func <small>(for external-type)</small></span> |
| <li><span class="dfn-paneled" id="3435afe9">func <small>(for heap-type)</small></span> |
| <li><span class="dfn-paneled" id="94f4c8ee">func_alloc</span> |
| <li><span class="dfn-paneled" id="e4286588">func_invoke</span> |
| <li><span class="dfn-paneled" id="2d67382f">func_type</span> |
| <li><span class="dfn-paneled" id="9a03a0e9">funcref</span> |
| <li><span class="dfn-paneled" id="ca17d396">function address</span> |
| <li><span class="dfn-paneled" id="4fc7e98f">global</span> |
| <li><span class="dfn-paneled" id="77489c34">global address</span> |
| <li><span class="dfn-paneled" id="9057d48e">global instance</span> |
| <li><span class="dfn-paneled" id="fc0ee513">global_alloc</span> |
| <li><span class="dfn-paneled" id="218fe9cc">global_read</span> |
| <li><span class="dfn-paneled" id="24a3a894">global_type</span> |
| <li><span class="dfn-paneled" id="0c039093">global_write</span> |
| <li><span class="dfn-paneled" id="bb2af9ca">host address</span> |
| <li><span class="dfn-paneled" id="41c521da">host function</span> |
| <li><span class="dfn-paneled" id="0108e6a0">i32</span> |
| <li><span class="dfn-paneled" id="a6ac3d87">i32.const</span> |
| <li><span class="dfn-paneled" id="6bdc3470">i64</span> |
| <li><span class="dfn-paneled" id="93d2e53d">i64.const</span> |
| <li><span class="dfn-paneled" id="f0c8810c">import</span> |
| <li><span class="dfn-paneled" id="f56c24ad">imports</span> |
| <li><span class="dfn-paneled" id="3952ef8f">instance_export</span> |
| <li><span class="dfn-paneled" id="85bce96e">limits</span> |
| <li><span class="dfn-paneled" id="9dd8925c">match_externtype</span> |
| <li><span class="dfn-paneled" id="9233088d">match_valtype</span> |
| <li><span class="dfn-paneled" id="297c7b14">mem</span> |
| <li><span class="dfn-paneled" id="aaa7a4ae">mem_alloc</span> |
| <li><span class="dfn-paneled" id="84eac0df">mem_grow</span> |
| <li><span class="dfn-paneled" id="161ae644">mem_size</span> |
| <li><span class="dfn-paneled" id="a93d50a7">mem_type</span> |
| <li><span class="dfn-paneled" id="f06ddd8a">memaddrs</span> |
| <li><span class="dfn-paneled" id="fbc61d3f">memory address</span> |
| <li><span class="dfn-paneled" id="746f6bc3">memory instance</span> |
| <li><span class="dfn-paneled" id="69ce1dac">memory type</span> |
| <li><span class="dfn-paneled" id="0b6a1132">memory.grow</span> |
| <li><span class="dfn-paneled" id="97e3d406">module</span> |
| <li><span class="dfn-paneled" id="1f093a91">module <small>(for frame)</small></span> |
| <li><span class="dfn-paneled" id="6c660071">module grammar</span> |
| <li><span class="dfn-paneled" id="3c380f81">module_decode</span> |
| <li><span class="dfn-paneled" id="76674d02">module_exports</span> |
| <li><span class="dfn-paneled" id="8780316d">module_imports</span> |
| <li><span class="dfn-paneled" id="baaf40e3">module_instantiate</span> |
| <li><span class="dfn-paneled" id="f3aaa883">module_validate</span> |
| <li><span class="dfn-paneled" id="8047ff82">nan</span> |
| <li><span class="dfn-paneled" id="dce4d017">page size</span> |
| <li><span class="dfn-paneled" id="2ab6b777">ref</span> |
| <li><span class="dfn-paneled" id="4da9fc5c">ref.array</span> |
| <li><span class="dfn-paneled" id="32922d65">ref.exn</span> |
| <li><span class="dfn-paneled" id="339ed507">ref.extern</span> |
| <li><span class="dfn-paneled" id="cdfd15a5">ref.func</span> |
| <li><span class="dfn-paneled" id="640ee28c">ref.host</span> |
| <li><span class="dfn-paneled" id="679f4232">ref.i31</span> |
| <li><span class="dfn-paneled" id="c3871e59">ref.null</span> |
| <li><span class="dfn-paneled" id="cf718107">ref.struct</span> |
| <li><span class="dfn-paneled" id="38f8a72a">ref_type</span> |
| <li><span class="dfn-paneled" id="e76d80be">reftype</span> |
| <li><span class="dfn-paneled" id="1c3da45d">scope</span> |
| <li><span class="dfn-paneled" id="7c586764">sequence</span> |
| <li><span class="dfn-paneled" id="76ec690d">signed_31</span> |
| <li><span class="dfn-paneled" id="fd73fa9f">signed_32</span> |
| <li><span class="dfn-paneled" id="0fbe5247">signed_64</span> |
| <li><span class="dfn-paneled" id="019e7aeb">signif</span> |
| <li><span class="dfn-paneled" id="ae59bd82">store</span> |
| <li><span class="dfn-paneled" id="d5e3a033">store_init</span> |
| <li><span class="dfn-paneled" id="fafc7354">struct address</span> |
| <li><span class="dfn-paneled" id="c8a6c84a">table</span> |
| <li><span class="dfn-paneled" id="dc5b915f">table address</span> |
| <li><span class="dfn-paneled" id="1569346b">table instance</span> |
| <li><span class="dfn-paneled" id="868a40c2">table type</span> |
| <li><span class="dfn-paneled" id="ec2020b1">table_alloc</span> |
| <li><span class="dfn-paneled" id="1d2aaa85">table_grow</span> |
| <li><span class="dfn-paneled" id="08301a78">table_read</span> |
| <li><span class="dfn-paneled" id="aab848f2">table_size</span> |
| <li><span class="dfn-paneled" id="ab79fc0f">table_type</span> |
| <li><span class="dfn-paneled" id="98df36c9">table_write</span> |
| <li><span class="dfn-paneled" id="acea0ba2">tag <small>(for external value)</small></span> |
| <li><span class="dfn-paneled" id="222b8c82">tag <small>(for external-type)</small></span> |
| <li><span class="dfn-paneled" id="068e0385">tag address</span> |
| <li><span class="dfn-paneled" id="672fca90">tag type</span> |
| <li><span class="dfn-paneled" id="c42599d7">tag_type</span> |
| <li><span class="dfn-paneled" id="d388e2b5">throw_ref</span> |
| <li><span class="dfn-paneled" id="5672836e">trap</span> |
| <li><span class="dfn-paneled" id="eb54bcbb">u64</span> |
| <li><span class="dfn-paneled" id="25439d77">v128</span> |
| <li><span class="dfn-paneled" id="e18130bf">v128.const</span> |
| <li><span class="dfn-paneled" id="5ce71be2">val_default</span> |
| <li><span class="dfn-paneled" id="43b980ff">valid</span> |
| <li><span class="dfn-paneled" id="e07b3d97">valid memtype</span> |
| <li><span class="dfn-paneled" id="1b0a78b7">valid tabletype</span> |
| <li><span class="dfn-paneled" id="ad1c5b3c">valtype</span> |
| <li><span class="dfn-paneled" id="71ea3880">var</span> |
| <li><span class="dfn-paneled" id="31e3695a">WebAssembly module validation</span> |
| <li><span class="dfn-paneled" id="7ca4b8ff">WebAssembly value</span> |
| <li><span class="dfn-paneled" id="d39a7bec">−∞</span> |
| </ul> |
| <li> |
| <a data-link-type="biblio">[WEBIDL]</a> defines the following terms: |
| <ul> |
| <li><span class="dfn-paneled" id="3aff2fb3">BufferSource</span> |
| <li><span class="dfn-paneled" id="53306f8f">ConvertToInt</span> |
| <li><span class="dfn-paneled" id="8855a9aa">DOMString</span> |
| <li><span class="dfn-paneled" id="c01cbda0">EnforceRange</span> |
| <li><span class="dfn-paneled" id="889e932f">Exposed</span> |
| <li><span class="dfn-paneled" id="f98ab0c2">LegacyNamespace</span> |
| <li><span class="dfn-paneled" id="bdbd19d1">Promise</span> |
| <li><span class="dfn-paneled" id="b0d7f3c3">USVString</span> |
| <li><span class="dfn-paneled" id="31f1c810">[EnforceRange]</span> |
| <li><span class="dfn-paneled" id="dacde8b5">a new promise</span> |
| <li><span class="dfn-paneled" id="6c6b1005">any</span> |
| <li><span class="dfn-paneled" id="3e180d35">associated realm</span> |
| <li><span class="dfn-paneled" id="5372cca8">boolean</span> |
| <li><span class="dfn-paneled" id="bb8f2f23">create a namespace object</span> |
| <li><span class="dfn-paneled" id="92d13070">get a copy of the buffer source</span> |
| <li><span class="dfn-paneled" id="a32c65d4">implements</span> |
| <li><span class="dfn-paneled" id="a0559a7c">js-unsigned-long</span> |
| <li><span class="dfn-paneled" id="60e61e1a">namespace object</span> |
| <li><span class="dfn-paneled" id="56f81a8e">new</span> |
| <li><span class="dfn-paneled" id="efd1ec5d">object</span> |
| <li><span class="dfn-paneled" id="b262501e">reject</span> |
| <li><span class="dfn-paneled" id="3b90bdcd">resolve</span> |
| <li><span class="dfn-paneled" id="9cce47fd">sequence</span> |
| <li><span class="dfn-paneled" id="b4cfa5ce">throw</span> |
| <li><span class="dfn-paneled" id="5f90bbfb">undefined</span> |
| <li><span class="dfn-paneled" id="e97a9688">unsigned long</span> |
| <li><span class="dfn-paneled" id="24bd7d25">upon fulfillment</span> |
| <li><span class="dfn-paneled" id="f14ed351">upon rejection</span> |
| </ul> |
| </ul> |
| <h2 class="no-num no-ref heading settled" id="references"><span class="content">References</span><a class="self-link" href="#references"></a></h2> |
| <h3 class="no-num no-ref heading settled" id="normative"><span class="content">Normative References</span><a class="self-link" href="#normative"></a></h3> |
| <dl> |
| <dt id="biblio-ecmascript">[ECMASCRIPT] |
| <dd><a href="https://tc39.es/ecma262/multipage/"><cite>ECMAScript Language Specification</cite></a>. URL: <a href="https://tc39.es/ecma262/multipage/">https://tc39.es/ecma262/multipage/</a> |
| <dt id="biblio-encoding">[ENCODING] |
| <dd>Anne van Kesteren. <a href="https://encoding.spec.whatwg.org/"><cite>Encoding Standard</cite></a>. Living Standard. URL: <a href="https://encoding.spec.whatwg.org/">https://encoding.spec.whatwg.org/</a> |
| <dt id="biblio-html">[HTML] |
| <dd>Anne van Kesteren; et al. <a href="https://html.spec.whatwg.org/multipage/"><cite>HTML Standard</cite></a>. Living Standard. URL: <a href="https://html.spec.whatwg.org/multipage/">https://html.spec.whatwg.org/multipage/</a> |
| <dt id="biblio-infra">[INFRA] |
| <dd>Anne van Kesteren; Domenic Denicola. <a href="https://infra.spec.whatwg.org/"><cite>Infra Standard</cite></a>. Living Standard. URL: <a href="https://infra.spec.whatwg.org/">https://infra.spec.whatwg.org/</a> |
| <dt id="biblio-rfc2119">[RFC2119] |
| <dd>S. Bradner. <a href="https://datatracker.ietf.org/doc/html/rfc2119"><cite>Key words for use in RFCs to Indicate Requirement Levels</cite></a>. March 1997. Best Current Practice. URL: <a href="https://datatracker.ietf.org/doc/html/rfc2119">https://datatracker.ietf.org/doc/html/rfc2119</a> |
| <dt id="biblio-webassembly">[WEBASSEMBLY] |
| <dd><a href="https://webassembly.github.io/spec/core/"><cite>WebAssembly Core Specification</cite></a>. Draft. URL: <a href="https://webassembly.github.io/spec/core/">https://webassembly.github.io/spec/core/</a> |
| <dt id="biblio-webidl">[WEBIDL] |
| <dd>Edgar Chen; Timothy Gu. <a href="https://webidl.spec.whatwg.org/"><cite>Web IDL Standard</cite></a>. Living Standard. URL: <a href="https://webidl.spec.whatwg.org/">https://webidl.spec.whatwg.org/</a> |
| </dl> |
| <h3 class="no-num no-ref heading settled" id="informative"><span class="content">Informative References</span><a class="self-link" href="#informative"></a></h3> |
| <dl> |
| <dt id="biblio-ieee-754">[IEEE-754] |
| <dd><a href="https://ieeexplore.ieee.org/document/8766229"><cite>IEEE Standard for Floating-Point Arithmetic</cite></a>. 22 July 2019. URL: <a href="https://ieeexplore.ieee.org/document/8766229">https://ieeexplore.ieee.org/document/8766229</a> |
| <dt id="biblio-wasmweb">[WASMWEB] |
| <dd><a href="https://webassembly.github.io/spec/web-api/"><cite>WebAssembly Web API Specification</cite></a>. Draft. URL: <a href="https://webassembly.github.io/spec/web-api/">https://webassembly.github.io/spec/web-api/</a> |
| </dl> |
| <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">IDL Index</span><a class="self-link" href="#idl-index"></a></h2> |
| <pre class="idl highlight def"><c- b>dictionary</c-> <a href="#dictdef-webassemblyinstantiatedsource"><code><c- g>WebAssemblyInstantiatedSource</c-></code></a> { |
| <c- b>required</c-> <a data-link-type="idl-name" href="#module"><c- n>Module</c-></a> <a data-type="Module" href="#dom-webassemblyinstantiatedsource-module"><code><c- g>module</c-></code></a>; |
| <c- b>required</c-> <a data-link-type="idl-name" href="#instance"><c- n>Instance</c-></a> <a data-type="Instance" href="#dom-webassemblyinstantiatedsource-instance"><code><c- g>instance</c-></code></a>; |
| }; |
| |
| <c- b>dictionary</c-> <a href="#dictdef-webassemblycompileoptions"><code><c- g>WebAssemblyCompileOptions</c-></code></a> { |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString"><c- b>USVString</c-></a>? <a data-type="USVString?" href="#dom-webassemblycompileoptions-importedstringconstants"><code><c- g>importedStringConstants</c-></code></a>; |
| <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence"><c- b>sequence</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString"><c- b>USVString</c-></a>> <a data-type="sequence<USVString>" href="#dom-webassemblycompileoptions-builtins"><code><c- g>builtins</c-></code></a>; |
| }; |
| |
| [Exposed=*] |
| <c- b>namespace</c-> <a href="#namespacedef-webassembly"><code><c- g>WebAssembly</c-></code></a> { |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-boolean"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="method" href="#dom-webassembly-validate"><c- g>validate</c-></a>(<a data-link-type="idl-name" href="https://webidl.spec.whatwg.org/#BufferSource"><c- n>BufferSource</c-></a> <a href="#dom-webassembly-validate-bytes-options-bytes"><code><c- g>bytes</c-></code></a>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-webassemblycompileoptions"><c- n>WebAssemblyCompileOptions</c-></a> <a href="#dom-webassembly-validate-bytes-options-options"><code><c- g>options</c-></code></a> = {}); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise"><c- b>Promise</c-></a><<a data-link-type="idl-name" href="#module"><c- n>Module</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-webassembly-compile"><c- g>compile</c-></a>(<a data-link-type="idl-name" href="https://webidl.spec.whatwg.org/#BufferSource"><c- n>BufferSource</c-></a> <a href="#dom-webassembly-compile-bytes-options-bytes"><code><c- g>bytes</c-></code></a>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-webassemblycompileoptions"><c- n>WebAssemblyCompileOptions</c-></a> <a href="#dom-webassembly-compile-bytes-options-options"><code><c- g>options</c-></code></a> = {}); |
| |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise"><c- b>Promise</c-></a><<a data-link-type="idl-name" href="#dictdef-webassemblyinstantiatedsource"><c- n>WebAssemblyInstantiatedSource</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-webassembly-instantiate"><c- g>instantiate</c-></a>( |
| <a data-link-type="idl-name" href="https://webidl.spec.whatwg.org/#BufferSource"><c- n>BufferSource</c-></a> <a href="#dom-webassembly-instantiate-bytes-importobject-options-bytes"><code><c- g>bytes</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-object"><c- b>object</c-></a> <a href="#dom-webassembly-instantiate-bytes-importobject-options-importobject"><code><c- g>importObject</c-></code></a>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-webassemblycompileoptions"><c- n>WebAssemblyCompileOptions</c-></a> <a href="#dom-webassembly-instantiate-bytes-importobject-options-options"><code><c- g>options</c-></code></a> = {}); |
| |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise"><c- b>Promise</c-></a><<a data-link-type="idl-name" href="#instance"><c- n>Instance</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-webassembly-instantiate-moduleobject-importobject"><c- g>instantiate</c-></a>( |
| <a data-link-type="idl-name" href="#module"><c- n>Module</c-></a> <a href="#dom-webassembly-instantiate-moduleobject-importobject-moduleobject"><code><c- g>moduleObject</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-object"><c- b>object</c-></a> <a href="#dom-webassembly-instantiate-moduleobject-importobject-importobject"><code><c- g>importObject</c-></code></a>); |
| |
| <c- b>readonly</c-> <c- b>attribute</c-> <a data-link-type="idl-name" href="#tag"><c- n>Tag</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="Tag" href="#dom-webassembly-jstag"><c- g>JSTag</c-></a>; |
| }; |
| |
| <c- b>enum</c-> <a href="#enumdef-importexportkind"><code><c- g>ImportExportKind</c-></code></a> { |
| <a href="#dom-importexportkind-function"><code><c- s>"function"</c-></code></a>, |
| <a href="#dom-importexportkind-table"><code><c- s>"table"</c-></code></a>, |
| <a href="#dom-importexportkind-memory"><code><c- s>"memory"</c-></code></a>, |
| <a href="#dom-importexportkind-global"><code><c- s>"global"</c-></code></a>, |
| <a href="#dom-importexportkind-tag"><code><c- s>"tag"</c-></code></a> |
| }; |
| |
| <c- b>enum</c-> <a href="#enumdef-addresstype"><code><c- g>AddressType</c-></code></a> { |
| <a href="#dom-addresstype-i32"><code><c- s>"i32"</c-></code></a>, |
| <a href="#dom-addresstype-i64"><code><c- s>"i64"</c-></code></a>, |
| }; |
| |
| <c- b>typedef</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a> <a href="#typedefdef-addressvalue"><code><c- g>AddressValue</c-></code></a>; |
| |
| <c- b>dictionary</c-> <a href="#dictdef-moduleexportdescriptor"><code><c- g>ModuleExportDescriptor</c-></code></a> { |
| <c- b>required</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString"><c- b>USVString</c-></a> <a data-type="USVString" href="#dom-moduleexportdescriptor-name"><code><c- g>name</c-></code></a>; |
| <c- b>required</c-> <a data-link-type="idl-name" href="#enumdef-importexportkind"><c- n>ImportExportKind</c-></a> <a data-type="ImportExportKind" href="#dom-moduleexportdescriptor-kind"><code><c- g>kind</c-></code></a>; |
| // Note: Other fields such as signature may be added in the future. |
| }; |
| |
| <c- b>dictionary</c-> <a href="#dictdef-moduleimportdescriptor"><code><c- g>ModuleImportDescriptor</c-></code></a> { |
| <c- b>required</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString"><c- b>USVString</c-></a> <a data-type="USVString" href="#dom-moduleimportdescriptor-module"><code><c- g>module</c-></code></a>; |
| <c- b>required</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-USVString"><c- b>USVString</c-></a> <a data-type="USVString" href="#dom-moduleimportdescriptor-name"><code><c- g>name</c-></code></a>; |
| <c- b>required</c-> <a data-link-type="idl-name" href="#enumdef-importexportkind"><c- n>ImportExportKind</c-></a> <a data-type="ImportExportKind" href="#dom-moduleimportdescriptor-kind"><code><c- g>kind</c-></code></a>; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <a href="#module"><code><c- g>Module</c-></code></a> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-module-module"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="https://webidl.spec.whatwg.org/#BufferSource"><c- n>BufferSource</c-></a> <a href="#dom-module-module-bytes-options-bytes"><code><c- g>bytes</c-></code></a>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-webassemblycompileoptions"><c- n>WebAssemblyCompileOptions</c-></a> <a href="#dom-module-module-bytes-options-options"><code><c- g>options</c-></code></a> = {}); |
| <c- b>static</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence"><c- b>sequence</c-></a><<a data-link-type="idl-name" href="#dictdef-moduleexportdescriptor"><c- n>ModuleExportDescriptor</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-module-exports"><c- g>exports</c-></a>(<a data-link-type="idl-name" href="#module"><c- n>Module</c-></a> <a href="#dom-module-exports-moduleobject-moduleobject"><code><c- g>moduleObject</c-></code></a>); |
| <c- b>static</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence"><c- b>sequence</c-></a><<a data-link-type="idl-name" href="#dictdef-moduleimportdescriptor"><c- n>ModuleImportDescriptor</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-module-imports"><c- g>imports</c-></a>(<a data-link-type="idl-name" href="#module"><c- n>Module</c-></a> <a href="#dom-module-imports-moduleobject-moduleobject"><code><c- g>moduleObject</c-></code></a>); |
| <c- b>static</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence"><c- b>sequence</c-></a><<a class="idl-code" data-link-type="interface" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects"><c- b>ArrayBuffer</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-module-customsections"><c- g>customSections</c-></a>(<a data-link-type="idl-name" href="#module"><c- n>Module</c-></a> <a href="#dom-module-customsections-moduleobject-sectionname-moduleobject"><code><c- g>moduleObject</c-></code></a>, <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString"><c- b>DOMString</c-></a> <a href="#dom-module-customsections-moduleobject-sectionname-sectionname"><code><c- g>sectionName</c-></code></a>); |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <a href="#instance"><code><c- g>Instance</c-></code></a> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-instance-instance"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#module"><c- n>Module</c-></a> <a href="#dom-instance-instance-module-importobject-module"><code><c- g>module</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-object"><c- b>object</c-></a> <a href="#dom-instance-instance-module-importobject-importobject"><code><c- g>importObject</c-></code></a>); |
| <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-object"><c- b>object</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="object" href="#dom-instance-exports"><c- g>exports</c-></a>; |
| }; |
| |
| <c- b>dictionary</c-> <a href="#dictdef-memorydescriptor"><code><c- g>MemoryDescriptor</c-></code></a> { |
| <c- b>required</c-> <a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a data-type="AddressValue" href="#dom-memorydescriptor-initial"><code><c- g>initial</c-></code></a>; |
| <a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a data-type="AddressValue" href="#dom-memorydescriptor-maximum"><code><c- g>maximum</c-></code></a>; |
| <a data-link-type="idl-name" href="#enumdef-addresstype"><c- n>AddressType</c-></a> <a data-type="AddressType" href="#dom-memorydescriptor-address"><code><c- g>address</c-></code></a>; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <a href="#memory"><code><c- g>Memory</c-></code></a> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-memory-memory"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#dictdef-memorydescriptor"><c- n>MemoryDescriptor</c-></a> <a href="#dom-memory-memory-descriptor-descriptor"><code><c- g>descriptor</c-></code></a>); |
| <a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a class="idl-code" data-link-type="method" href="#dom-memory-grow"><c- g>grow</c-></a>(<a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a href="#dom-memory-grow-delta-delta"><code><c- g>delta</c-></code></a>); |
| <a class="idl-code" data-link-type="interface" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects"><c- b>ArrayBuffer</c-></a> <a class="idl-code" data-link-type="method" href="#dom-memory-tofixedlengthbuffer"><c- g>toFixedLengthBuffer</c-></a>(); |
| <a class="idl-code" data-link-type="interface" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects"><c- b>ArrayBuffer</c-></a> <a class="idl-code" data-link-type="method" href="#dom-memory-toresizablebuffer"><c- g>toResizableBuffer</c-></a>(); |
| <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://tc39.github.io/ecma262/#sec-arraybuffer-objects"><c- b>ArrayBuffer</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="ArrayBuffer" href="#dom-memory-buffer"><c- g>buffer</c-></a>; |
| }; |
| |
| <c- b>enum</c-> <a href="#enumdef-tablekind"><code><c- g>TableKind</c-></code></a> { |
| <a href="#dom-tablekind-externref"><code><c- s>"externref"</c-></code></a>, |
| <a href="#dom-tablekind-anyfunc"><code><c- s>"anyfunc"</c-></code></a>, |
| // Note: More values may be added in future iterations, |
| // e.g., typed function references, typed GC references |
| }; |
| |
| <c- b>dictionary</c-> <a href="#dictdef-tabledescriptor"><code><c- g>TableDescriptor</c-></code></a> { |
| <c- b>required</c-> <a data-link-type="idl-name" href="#enumdef-tablekind"><c- n>TableKind</c-></a> <a data-type="TableKind" href="#dom-tabledescriptor-element"><code><c- g>element</c-></code></a>; |
| <c- b>required</c-> <a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a data-type="AddressValue" href="#dom-tabledescriptor-initial"><code><c- g>initial</c-></code></a>; |
| <a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a data-type="AddressValue" href="#dom-tabledescriptor-maximum"><code><c- g>maximum</c-></code></a>; |
| <a data-link-type="idl-name" href="#enumdef-addresstype"><c- n>AddressType</c-></a> <a data-type="AddressType" href="#dom-tabledescriptor-address"><code><c- g>address</c-></code></a>; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <a href="#table"><code><c- g>Table</c-></code></a> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-table-table"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#dictdef-tabledescriptor"><c- n>TableDescriptor</c-></a> <a href="#dom-table-table-descriptor-value-descriptor"><code><c- g>descriptor</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a> <a href="#dom-table-table-descriptor-value-value"><code><c- g>value</c-></code></a>); |
| <a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a class="idl-code" data-link-type="method" href="#dom-table-grow"><c- g>grow</c-></a>(<a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a href="#dom-table-grow-delta-value-delta"><code><c- g>delta</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a> <a href="#dom-table-grow-delta-value-value"><code><c- g>value</c-></code></a>); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a> <a class="idl-code" data-link-type="method" href="#dom-table-get"><c- g>get</c-></a>(<a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a href="#dom-table-get-index-index"><code><c- g>index</c-></code></a>); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined"><c- b>undefined</c-></a> <a class="idl-code" data-link-type="method" href="#dom-table-set"><c- g>set</c-></a>(<a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a href="#dom-table-set-index-value-index"><code><c- g>index</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a> <a href="#dom-table-set-index-value-value"><code><c- g>value</c-></code></a>); |
| <c- b>readonly</c-> <c- b>attribute</c-> <a data-link-type="idl-name" href="#typedefdef-addressvalue"><c- n>AddressValue</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="AddressValue" href="#dom-table-length"><c- g>length</c-></a>; |
| }; |
| |
| <c- b>enum</c-> <a href="#enumdef-valuetype"><code><c- g>ValueType</c-></code></a> { |
| <a href="#dom-valuetype-i32"><code><c- s>"i32"</c-></code></a>, |
| <a href="#dom-valuetype-i64"><code><c- s>"i64"</c-></code></a>, |
| <a href="#dom-valuetype-f32"><code><c- s>"f32"</c-></code></a>, |
| <a href="#dom-valuetype-f64"><code><c- s>"f64"</c-></code></a>, |
| <a href="#dom-valuetype-v128"><code><c- s>"v128"</c-></code></a>, |
| <a href="#dom-valuetype-externref"><code><c- s>"externref"</c-></code></a>, |
| <a href="#dom-valuetype-anyfunc"><code><c- s>"anyfunc"</c-></code></a>, |
| }; |
| |
| <c- b>dictionary</c-> <a href="#dictdef-globaldescriptor"><code><c- g>GlobalDescriptor</c-></code></a> { |
| <c- b>required</c-> <a data-link-type="idl-name" href="#enumdef-valuetype"><c- n>ValueType</c-></a> <a data-type="ValueType" href="#dom-globaldescriptor-value"><code><c- g>value</c-></code></a>; |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-boolean"><c- b>boolean</c-></a> <a data-default="false" data-type="boolean" href="#dom-globaldescriptor-mutable"><code><c- g>mutable</c-></code></a> = <c- b>false</c->; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly"><c- n>WebAssembly</c-></a>, Exposed=*] |
| <c- b>interface</c-> <a href="#global"><code><c- g>Global</c-></code></a> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-global-global"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#dictdef-globaldescriptor"><c- n>GlobalDescriptor</c-></a> <a href="#dom-global-global-descriptor-v-descriptor"><code><c- g>descriptor</c-></code></a>, <c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a> <a href="#dom-global-global-descriptor-v-v"><code><c- g>v</c-></code></a>); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a> <a class="idl-code" data-link-type="method" href="#dom-global-valueof"><c- g>valueOf</c-></a>(); |
| <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a> <a class="idl-code" data-link-type="attribute" data-type="any" href="#dom-global-value"><c- g>value</c-></a>; |
| }; |
| |
| <c- b>dictionary</c-> <a href="#dictdef-tagtype"><code><c- g>TagType</c-></code></a> { |
| <c- b>required</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence"><c- b>sequence</c-></a><<a data-link-type="idl-name" href="#enumdef-valuetype"><c- n>ValueType</c-></a>> <a data-type="sequence<ValueType>" href="#dom-tagtype-parameters"><code><c- g>parameters</c-></code></a>; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly"><c- n>WebAssembly</c-></a>, <a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#Exposed"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>Worker</c->,<c- n>Worklet</c->)] |
| <c- b>interface</c-> <a href="#tag"><code><c- g>Tag</c-></code></a> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-tag-tag"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#dictdef-tagtype"><c- n>TagType</c-></a> <a href="#dom-tag-tag-type-type"><code><c- g>type</c-></code></a>); |
| }; |
| |
| <c- b>dictionary</c-> <a href="#dictdef-exceptionoptions"><code><c- g>ExceptionOptions</c-></code></a> { |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-boolean"><c- b>boolean</c-></a> <a data-default="false" data-type="boolean" href="#dom-exceptionoptions-tracestack"><code><c- g>traceStack</c-></code></a> = <c- b>false</c->; |
| }; |
| |
| [<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#LegacyNamespace"><c- g>LegacyNamespace</c-></a>=<a data-link-type="idl-name" href="#namespacedef-webassembly"><c- n>WebAssembly</c-></a>, <a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#Exposed"><c- g>Exposed</c-></a>=(<c- n>Window</c->,<c- n>Worker</c->,<c- n>Worklet</c->)] |
| <c- b>interface</c-> <a href="#exception"><code><c- g>Exception</c-></code></a> { |
| <a class="idl-code" data-link-type="constructor" href="#dom-exception-exception"><c- g>constructor</c-></a>(<a data-link-type="idl-name" href="#tag"><c- n>Tag</c-></a> <a href="#dom-exception-exception-exceptiontag-payload-options-exceptiontag"><code><c- g>exceptionTag</c-></code></a>, <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence"><c- b>sequence</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a>> <a href="#dom-exception-exception-exceptiontag-payload-options-payload"><code><c- g>payload</c-></code></a>, <c- b>optional</c-> <a data-link-type="idl-name" href="#dictdef-exceptionoptions"><c- n>ExceptionOptions</c-></a> <a href="#dom-exception-exception-exceptiontag-payload-options-options"><code><c- g>options</c-></code></a> = {}); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-any"><c- b>any</c-></a> <a class="idl-code" data-link-type="method" href="#dom-exception-getarg"><c- g>getArg</c-></a>([<a class="idl-code" data-link-type="extended-attribute" href="https://webidl.spec.whatwg.org/#EnforceRange"><c- g>EnforceRange</c-></a>] <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-unsigned-long"><c- b>unsigned</c-> <c- b>long</c-></a> <a href="#dom-exception-getarg-index-index"><code><c- g>index</c-></code></a>); |
| <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-boolean"><c- b>boolean</c-></a> <a class="idl-code" data-link-type="method" href="#dom-exception-is"><c- g>is</c-></a>(<a data-link-type="idl-name" href="#tag"><c- n>Tag</c-></a> <a href="#dom-exception-is-exceptiontag-exceptiontag"><code><c- g>exceptionTag</c-></code></a>); |
| <c- b>readonly</c-> <c- b>attribute</c-> (<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString"><c- b>DOMString</c-></a> <c- b>or</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined"><c- b>undefined</c-></a>) <a class="idl-code" data-link-type="attribute" data-readonly data-type="(DOMString or undefined)" href="#dom-exception-stack"><c- g>stack</c-></a>; |
| }; |
| |
| </pre> |
| <h2 class="no-num no-ref heading settled" id="issues-index"><span class="content">Issues Index</span><a class="self-link" href="#issues-index"></a></h2> |
| <div style="counter-reset:issue"> |
| <div class="issue"> |
| |
| A failed allocation of a large table or memory may either result in |
| |
| <ul> |
| <li data-md> |
| <p>a <code class="idl"><a data-link-type="idl" href="https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror">RangeError</a></code>, as specified in the <code class="idl"><a data-link-type="idl" href="#memory">Memory</a></code> <code class="idl"><a data-link-type="idl" href="#dom-memory-grow">grow()</a></code> and <code class="idl"><a data-link-type="idl" href="#table">Table</a></code> <code class="idl"><a data-link-type="idl" href="#dom-table-grow">grow()</a></code> operations</p> |
| <li data-md> |
| <p>returning -1 as the <a data-link-type="dfn" href="https://webassembly.github.io/spec/core/exec/instructions.html#exec-memory-grow">memory.grow</a> instruction</p> |
| <li data-md> |
| <p>UA-specific OOM behavior as described in this section.</p> |
| </ul> |
| In a future revision, we may reconsider more reliable and recoverable errors for allocations of large amounts of memory. |
| |
| |
| <p>See <a href="https://github.com/WebAssembly/spec/issues/879">Issue 879</a> for further discussion.</p> |
| |
| <a class="issue-return" href="#issue-7eafcf54" title="Jump to section">↵</a> |
| </div> |
| </div> |
| <script>/* Boilerplate: script-dom-helper */ |
| "use strict"; |
| function query(sel) { return document.querySelector(sel); } |
| |
| function queryAll(sel) { return [...document.querySelectorAll(sel)]; } |
| |
| function iter(obj) { |
| if(!obj) return []; |
| var it = obj[Symbol.iterator]; |
| if(it) return it; |
| return Object.entries(obj); |
| } |
| |
| function mk(tagname, attrs, ...children) { |
| const el = document.createElement(tagname); |
| for(const [k,v] of iter(attrs)) { |
| if(k.slice(0,3) == "_on") { |
| const eventName = k.slice(3); |
| el.addEventListener(eventName, v); |
| } else if(k[0] == "_") { |
| // property, not attribute |
| el[k.slice(1)] = v; |
| } else { |
| if(v === false || v == null) { |
| continue; |
| } else if(v === true) { |
| el.setAttribute(k, ""); |
| continue; |
| } else { |
| el.setAttribute(k, v); |
| } |
| } |
| } |
| append(el, children); |
| return el; |
| } |
| |
| /* Create shortcuts for every known HTML element */ |
| [ |
| "a", |
| "abbr", |
| "acronym", |
| "address", |
| "applet", |
| "area", |
| "article", |
| "aside", |
| "audio", |
| "b", |
| "base", |
| "basefont", |
| "bdo", |
| "big", |
| "blockquote", |
| "body", |
| "br", |
| "button", |
| "canvas", |
| "caption", |
| "center", |
| "cite", |
| "code", |
| "col", |
| "colgroup", |
| "datalist", |
| "dd", |
| "del", |
| "details", |
| "dfn", |
| "dialog", |
| "div", |
| "dl", |
| "dt", |
| "em", |
| "embed", |
| "fieldset", |
| "figcaption", |
| "figure", |
| "font", |
| "footer", |
| "form", |
| "frame", |
| "frameset", |
| "head", |
| "header", |
| "h1", |
| "h2", |
| "h3", |
| "h4", |
| "h5", |
| "h6", |
| "hr", |
| "html", |
| "i", |
| "iframe", |
| "img", |
| "input", |
| "ins", |
| "kbd", |
| "label", |
| "legend", |
| "li", |
| "link", |
| "main", |
| "map", |
| "mark", |
| "meta", |
| "meter", |
| "nav", |
| "nobr", |
| "noscript", |
| "object", |
| "ol", |
| "optgroup", |
| "option", |
| "output", |
| "p", |
| "param", |
| "pre", |
| "progress", |
| "q", |
| "s", |
| "samp", |
| "script", |
| "section", |
| "select", |
| "small", |
| "source", |
| "span", |
| "strike", |
| "strong", |
| "style", |
| "sub", |
| "summary", |
| "sup", |
| "table", |
| "tbody", |
| "td", |
| "template", |
| "textarea", |
| "tfoot", |
| "th", |
| "thead", |
| "time", |
| "title", |
| "tr", |
| "u", |
| "ul", |
| "var", |
| "video", |
| "wbr", |
| "xmp", |
| ].forEach(tagname=>{ |
| mk[tagname] = (...args) => mk(tagname, ...args); |
| }); |
| |
| function* nodesFromChildList(children) { |
| for(const child of children.flat(Infinity)) { |
| if(child instanceof Node) { |
| yield child; |
| } else { |
| yield new Text(child); |
| } |
| } |
| } |
| function append(el, ...children) { |
| for(const child of nodesFromChildList(children)) { |
| if(el instanceof Node) el.appendChild(child); |
| else el.push(child); |
| } |
| return el; |
| } |
| |
| function insertAfter(el, ...children) { |
| for(const child of nodesFromChildList(children)) { |
| el.parentNode.insertBefore(child, el.nextSibling); |
| } |
| return el; |
| } |
| |
| function clearContents(el) { |
| el.innerHTML = ""; |
| return el; |
| } |
| |
| function parseHTML(markup) { |
| if(markup.toLowerCase().trim().indexOf('<!doctype') === 0) { |
| const doc = document.implementation.createHTMLDocument(""); |
| doc.documentElement.innerHTML = markup; |
| return doc; |
| } else { |
| const el = mk.template({}); |
| el.innerHTML = markup; |
| return el.content; |
| } |
| }</script> |
| <script>/* Boilerplate: script-dfn-panel */ |
| "use strict"; |
| { |
| let dfnPanelData = { |
| "0108e6a0": {"dfnID":"0108e6a0","dfnText":"i32","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-numtype"},{"id":"ref-for-syntax-numtype\u2460"},{"id":"ref-for-syntax-numtype\u2461"},{"id":"ref-for-syntax-numtype\u2462"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-syntax-numtype\u2463"},{"id":"ref-for-syntax-numtype\u2464"},{"id":"ref-for-syntax-numtype\u2465"},{"id":"ref-for-syntax-numtype\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-syntax-numtype\u2467"},{"id":"ref-for-syntax-numtype\u2468"},{"id":"ref-for-syntax-numtype\u2460\u24ea"},{"id":"ref-for-syntax-numtype\u2460\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-syntax-numtype\u2460\u2461"},{"id":"ref-for-syntax-numtype\u2460\u2462"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-syntax-numtype\u2460\u2463"}],"title":"BigInt Integration"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype"}, |
| "019e7aeb": {"dfnID":"019e7aeb","dfnText":"signif","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-float"},{"id":"ref-for-syntax-float\u2460"},{"id":"ref-for-syntax-float\u2461"},{"id":"ref-for-syntax-float\u2462"},{"id":"ref-for-syntax-float\u2463"},{"id":"ref-for-syntax-float\u2464"},{"id":"ref-for-syntax-float\u2465"},{"id":"ref-for-syntax-float\u2466"},{"id":"ref-for-syntax-float\u2467"},{"id":"ref-for-syntax-float\u2468"},{"id":"ref-for-syntax-float\u2460\u24ea"},{"id":"ref-for-syntax-float\u2460\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "01d93e6a": {"dfnID":"01d93e6a","dfnText":"SameValue","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-samevalue"}],"title":"5.3. Memories"}],"url":"https://tc39.github.io/ecma262/#sec-samevalue"}, |
| "0204d188": {"dfnID":"0204d188","dfnText":"size","external":true,"refSections":[{"refs":[{"id":"ref-for-list-size"},{"id":"ref-for-list-size\u2460"},{"id":"ref-for-list-size\u2461"},{"id":"ref-for-list-size\u2462"},{"id":"ref-for-list-size\u2463"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-list-size\u2464"},{"id":"ref-for-list-size\u2465"},{"id":"ref-for-list-size\u2466"}],"title":"5.9. Exceptions"}],"url":"https://infra.spec.whatwg.org/#list-size"}, |
| "048283eb": {"dfnID":"048283eb","dfnText":"address","external":true,"refSections":[{"refs":[{"id":"ref-for-addresses"}],"title":"4.2. WebAssembly JS Object Caches"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#addresses"}, |
| "0656fbb6": {"dfnID":"0656fbb6","dfnText":"+\u221e","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-float"},{"id":"ref-for-syntax-float\u2460"},{"id":"ref-for-syntax-float\u2461"},{"id":"ref-for-syntax-float\u2462"},{"id":"ref-for-syntax-float\u2463"},{"id":"ref-for-syntax-float\u2464"},{"id":"ref-for-syntax-float\u2465"},{"id":"ref-for-syntax-float\u2466"},{"id":"ref-for-syntax-float\u2467"},{"id":"ref-for-syntax-float\u2468"},{"id":"ref-for-syntax-float\u2460\u24ea"},{"id":"ref-for-syntax-float\u2460\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "068e0385": {"dfnID":"068e0385","dfnText":"tag address","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-tagaddr"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-syntax-tagaddr\u2460"},{"id":"ref-for-syntax-tagaddr\u2461"}],"title":"5.7. Tags"},{"refs":[{"id":"ref-for-syntax-tagaddr\u2462"},{"id":"ref-for-syntax-tagaddr\u2463"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-syntax-tagaddr\u2464"}],"title":"5.9.1. JavaScript exceptions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tagaddr"}, |
| "06930779": {"dfnID":"06930779","dfnText":"custom section","external":true,"refSections":[{"refs":[{"id":"ref-for-custom-section"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/binary/modules.html#custom-section"}, |
| "06f63be9": {"dfnID":"06f63be9","dfnText":"ToInt32","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-toint32"},{"id":"ref-for-sec-toint32\u2460"},{"id":"ref-for-sec-toint32\u2461"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-toint32"}, |
| "08301a78": {"dfnID":"08301a78","dfnText":"table_read","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-table-read"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-read"}, |
| "09d78e0f": {"dfnID":"09d78e0f","dfnText":"extern","external":true,"refSections":[{"refs":[{"id":"ref-for-heap-types"},{"id":"ref-for-heap-types\u2460"},{"id":"ref-for-heap-types\u2461"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#heap-types"}, |
| "0b6a1132": {"dfnID":"0b6a1132","dfnText":"memory.grow","external":true,"refSections":[{"refs":[{"id":"ref-for-exec-memory-grow"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-exec-memory-grow\u2460"}],"title":"7.2. Out of Memory"}],"url":"https://webassembly.github.io/spec/core/exec/instructions.html#exec-memory-grow"}, |
| "0c039093": {"dfnID":"0c039093","dfnText":"global_write","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-global-write"}],"title":"5.5. Globals"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-write"}, |
| "0e6b2056": {"dfnID":"0e6b2056","dfnText":"set","external":true,"refSections":[{"refs":[{"id":"ref-for-map-set"},{"id":"ref-for-map-set\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-map-set\u2461"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-map-set\u2462"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-map-set\u2463"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-map-set\u2464"},{"id":"ref-for-map-set\u2465"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-map-set\u2466"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-map-set\u2467"}],"title":"5.8. Garbage Collected Objects"},{"refs":[{"id":"ref-for-map-set\u2468"}],"title":"5.9. Exceptions"}],"url":"https://infra.spec.whatwg.org/#map-set"}, |
| "0fa357c3": {"dfnID":"0fa357c3","dfnText":"length","external":true,"refSections":[{"refs":[{"id":"ref-for-string-length"}],"title":"6.1.5. intoCharCodeArray"},{"refs":[{"id":"ref-for-string-length\u2460"}],"title":"6.1.8. charCodeAt"},{"refs":[{"id":"ref-for-string-length\u2461"}],"title":"6.1.9. codePointAt"},{"refs":[{"id":"ref-for-string-length\u2462"}],"title":"6.1.10. length"},{"refs":[{"id":"ref-for-string-length\u2463"}],"title":"6.1.12. substring"}],"url":"https://infra.spec.whatwg.org/#string-length"}, |
| "0fbe5247": {"dfnID":"0fbe5247","dfnText":"signed_64","external":true,"refSections":[{"refs":[{"id":"ref-for-aux-signed"},{"id":"ref-for-aux-signed\u2460"},{"id":"ref-for-aux-signed\u2461"},{"id":"ref-for-aux-signed\u2462"},{"id":"ref-for-aux-signed\u2463"},{"id":"ref-for-aux-signed\u2464"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed"}, |
| "1243a891": {"dfnID":"1243a891","dfnText":"exist","external":true,"refSections":[{"refs":[{"id":"ref-for-map-exists"},{"id":"ref-for-map-exists\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-map-exists\u2461"},{"id":"ref-for-map-exists\u2462"},{"id":"ref-for-map-exists\u2463"},{"id":"ref-for-map-exists\u2464"},{"id":"ref-for-map-exists\u2465"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-map-exists\u2466"},{"id":"ref-for-map-exists\u2467"},{"id":"ref-for-map-exists\u2468"},{"id":"ref-for-map-exists\u2460\u24ea"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-map-exists\u2460\u2460"},{"id":"ref-for-map-exists\u2460\u2461"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-map-exists\u2460\u2462"},{"id":"ref-for-map-exists\u2460\u2463"},{"id":"ref-for-map-exists\u2460\u2464"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-map-exists\u2460\u2465"},{"id":"ref-for-map-exists\u2460\u2466"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-map-exists\u2460\u2467"}],"title":"5.8. Garbage Collected Objects"},{"refs":[{"id":"ref-for-map-exists\u2460\u2468"},{"id":"ref-for-map-exists\u2461\u24ea"}],"title":"5.9. Exceptions"}],"url":"https://infra.spec.whatwg.org/#map-exists"}, |
| "1569346b": {"dfnID":"1569346b","dfnText":"table instance","external":true,"refSections":[{"refs":[{"id":"ref-for-table-instances"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#table-instances"}, |
| "161ae644": {"dfnID":"161ae644","dfnText":"mem_size","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-mem-size"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-size"}, |
| "16d0e7c3": {"dfnID":"16d0e7c3","dfnText":"f64.const","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "190fb93b": {"dfnID":"190fb93b","dfnText":"any","external":true,"refSections":[{"refs":[{"id":"ref-for-heap-types"},{"id":"ref-for-heap-types\u2460"},{"id":"ref-for-heap-types\u2461"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#heap-types"}, |
| "19a9b79b": {"dfnID":"19a9b79b","dfnText":"String.prototype.charCodeAt","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-string.prototype.charcodeat"}],"title":"6.1.1. Abstract operations"}],"url":"https://tc39.github.io/ecma262/#sec-string.prototype.charcodeat"}, |
| "1b0a78b7": {"dfnID":"1b0a78b7","dfnText":"valid tabletype","external":true,"refSections":[{"refs":[{"id":"ref-for-valid-tabletype"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/valid/types.html#valid-tabletype"}, |
| "1c3da45d": {"dfnID":"1c3da45d","dfnText":"scope","external":true,"refSections":[{"refs":[{"id":"ref-for-scope"}],"title":"1. Introduction"}],"url":"https://webassembly.github.io/spec/core/intro/introduction.html#scope"}, |
| "1d2aaa85": {"dfnID":"1d2aaa85","dfnText":"table_grow","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-table-grow"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-grow"}, |
| "1f093a91": {"dfnID":"1f093a91","dfnText":"module (for frame)","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-frame"},{"id":"ref-for-syntax-frame\u2460"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-frame"}, |
| "218fe9cc": {"dfnID":"218fe9cc","dfnText":"global_read","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-global-read"}],"title":"5.5. Globals"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-read"}, |
| "222b8c82": {"dfnID":"222b8c82","dfnText":"tag (for external-type)","external":true,"refSections":[{"refs":[{"id":"ref-for-external-types"},{"id":"ref-for-external-types\u2460"},{"id":"ref-for-external-types\u2461"},{"id":"ref-for-external-types\u2462"},{"id":"ref-for-external-types\u2463"},{"id":"ref-for-external-types\u2464"},{"id":"ref-for-external-types\u2465"},{"id":"ref-for-external-types\u2466"},{"id":"ref-for-external-types\u2467"},{"id":"ref-for-external-types\u2468"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-external-types\u2460\u24ea"},{"id":"ref-for-external-types\u2460\u2460"},{"id":"ref-for-external-types\u2460\u2461"},{"id":"ref-for-external-types\u2460\u2462"},{"id":"ref-for-external-types\u2460\u2463"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "24a3a894": {"dfnID":"24a3a894","dfnText":"global_type","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-global-type"},{"id":"ref-for-embed-global-type\u2460"}],"title":"5.5. Globals"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-type"}, |
| "24bd7d25": {"dfnID":"24bd7d25","dfnText":"upon fulfillment","external":true,"refSections":[{"refs":[{"id":"ref-for-upon-fulfillment"},{"id":"ref-for-upon-fulfillment\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webidl.spec.whatwg.org/#upon-fulfillment"}, |
| "25439d77": {"dfnID":"25439d77","dfnText":"v128","external":true,"refSections":[{"refs":[{"id":"ref-for-vector-types"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-vector-types\u2460"},{"id":"ref-for-vector-types\u2461"},{"id":"ref-for-vector-types\u2462"},{"id":"ref-for-vector-types\u2463"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-vector-types\u2464"},{"id":"ref-for-vector-types\u2465"},{"id":"ref-for-vector-types\u2466"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-vector-types\u2467"},{"id":"ref-for-vector-types\u2468"}],"title":"5.9. Exceptions"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#vector-types"}, |
| "288fbd68": {"dfnID":"288fbd68","dfnText":"String.fromCodePoint","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-string.fromcodepoint"}],"title":"6.1.7. fromCodePoint"}],"url":"https://tc39.github.io/ecma262/#sec-string.fromcodepoint"}, |
| "297c7b14": {"dfnID":"297c7b14","dfnText":"mem","external":true,"refSections":[{"refs":[{"id":"ref-for-external-types"},{"id":"ref-for-external-types\u2460"},{"id":"ref-for-external-types\u2461"},{"id":"ref-for-external-types\u2462"},{"id":"ref-for-external-types\u2463"},{"id":"ref-for-external-types\u2464"},{"id":"ref-for-external-types\u2465"},{"id":"ref-for-external-types\u2466"},{"id":"ref-for-external-types\u2467"},{"id":"ref-for-external-types\u2468"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-external-types\u2460\u24ea"},{"id":"ref-for-external-types\u2460\u2460"},{"id":"ref-for-external-types\u2460\u2461"},{"id":"ref-for-external-types\u2460\u2462"},{"id":"ref-for-external-types\u2460\u2463"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "2ab6b777": {"dfnID":"2ab6b777","dfnText":"ref","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-reftype"},{"id":"ref-for-syntax-reftype\u2460"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-syntax-reftype\u2461"},{"id":"ref-for-syntax-reftype\u2462"},{"id":"ref-for-syntax-reftype\u2463"},{"id":"ref-for-syntax-reftype\u2464"},{"id":"ref-for-syntax-reftype\u2465"},{"id":"ref-for-syntax-reftype\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-syntax-reftype\u2467"},{"id":"ref-for-syntax-reftype\u2468"},{"id":"ref-for-syntax-reftype\u2460\u24ea"},{"id":"ref-for-syntax-reftype\u2460\u2460"},{"id":"ref-for-syntax-reftype\u2460\u2461"},{"id":"ref-for-syntax-reftype\u2460\u2462"},{"id":"ref-for-syntax-reftype\u2460\u2463"},{"id":"ref-for-syntax-reftype\u2460\u2464"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-syntax-reftype\u2460\u2465"},{"id":"ref-for-syntax-reftype\u2460\u2466"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-syntax-reftype\u2460\u2467"},{"id":"ref-for-syntax-reftype\u2460\u2468"}],"title":"5.9.1. JavaScript exceptions"},{"refs":[{"id":"ref-for-syntax-reftype\u2461\u24ea"}],"title":"Reference Types"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype"}, |
| "2ad7bc40": {"dfnID":"2ad7bc40","dfnText":"canon","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-float"},{"id":"ref-for-syntax-float\u2460"},{"id":"ref-for-syntax-float\u2461"},{"id":"ref-for-syntax-float\u2462"},{"id":"ref-for-syntax-float\u2463"},{"id":"ref-for-syntax-float\u2464"},{"id":"ref-for-syntax-float\u2465"},{"id":"ref-for-syntax-float\u2466"},{"id":"ref-for-syntax-float\u2467"},{"id":"ref-for-syntax-float\u2468"},{"id":"ref-for-syntax-float\u2460\u24ea"},{"id":"ref-for-syntax-float\u2460\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "2d67382f": {"dfnID":"2d67382f","dfnText":"func_type","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-func-type"},{"id":"ref-for-embed-func-type\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-type"}, |
| "31e3695a": {"dfnID":"31e3695a","dfnText":"WebAssembly module validation","external":true,"refSections":[{"refs":[{"id":"ref-for-valid-module"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-valid-module\u2460"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/valid/modules.html#valid-module"}, |
| "31f1c810": {"dfnID":"31f1c810","dfnText":"[EnforceRange]","external":true,"refSections":[{"refs":[{"id":"ref-for-EnforceRange"},{"id":"ref-for-EnforceRange\u2460"},{"id":"ref-for-EnforceRange\u2461"},{"id":"ref-for-EnforceRange\u2462"}],"title":"5.6. Exported Functions"}],"url":"https://heycam.github.io/webidl/#EnforceRange"}, |
| "32922d65": {"dfnID":"32922d65","dfnText":"ref.exn","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "339ed507": {"dfnID":"339ed507","dfnText":"ref.extern","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "3435afe9": {"dfnID":"3435afe9","dfnText":"func (for heap-type)","external":true,"refSections":[{"refs":[{"id":"ref-for-heap-types"},{"id":"ref-for-heap-types\u2460"},{"id":"ref-for-heap-types\u2461"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#heap-types"}, |
| "361dac10": {"dfnID":"361dac10","dfnText":"exception address","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-exnaddr"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-syntax-exnaddr\u2460"},{"id":"ref-for-syntax-exnaddr\u2461"}],"title":"5.9. Exceptions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-exnaddr"}, |
| "369594bc": {"dfnID":"369594bc","dfnText":"SetIntegrityLevel","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-setintegritylevel"}],"title":"5. The WebAssembly Namespace"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-setintegritylevel"}, |
| "38f8a72a": {"dfnID":"38f8a72a","dfnText":"ref_type","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-ref-type"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-ref-type"}, |
| "3952ef8f": {"dfnID":"3952ef8f","dfnText":"instance_export","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-instance-export"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-instance-export"}, |
| "3aff2fb3": {"dfnID":"3aff2fb3","dfnText":"BufferSource","external":true,"refSections":[{"refs":[{"id":"ref-for-BufferSource"},{"id":"ref-for-BufferSource\u2460"},{"id":"ref-for-BufferSource\u2461"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-BufferSource\u2462"}],"title":"5.1. Modules"}],"url":"https://webidl.spec.whatwg.org/#BufferSource"}, |
| "3b90bdcd": {"dfnID":"3b90bdcd","dfnText":"resolve","external":true,"refSections":[{"refs":[{"id":"ref-for-resolve"},{"id":"ref-for-resolve\u2460"},{"id":"ref-for-resolve\u2461"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webidl.spec.whatwg.org/#resolve"}, |
| "3c380f81": {"dfnID":"3c380f81","dfnText":"module_decode","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-module-decode"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-decode"}, |
| "3e180d35": {"dfnID":"3e180d35","dfnText":"associated realm","external":true,"refSections":[{"refs":[{"id":"ref-for-dfn-associated-realm"}],"title":"5.6. Exported Functions"}],"url":"https://webidl.spec.whatwg.org/#dfn-associated-realm"}, |
| "3ed14caf": {"dfnID":"3ed14caf","dfnText":"IsFixedLengthArrayBuffer","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-isfixedarraybuffer"},{"id":"ref-for-sec-isfixedarraybuffer\u2460"},{"id":"ref-for-sec-isfixedarraybuffer\u2461"}],"title":"5.3. Memories"}],"url":"https://tc39.es/proposal-resizablearraybuffer/#sec-isfixedarraybuffer"}, |
| "41c521da": {"dfnID":"41c521da","dfnText":"host function","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-hostfunc"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-syntax-hostfunc\u2460"}],"title":"6. Builtins"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostfunc"}, |
| "43564950": {"dfnID":"43564950","dfnText":"RangeError","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2460"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2461"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2462"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2463"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2464"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2465"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2466"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2467"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2468"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2460\u24ea"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2460\u2460"}],"title":"5.10. Error Objects"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2460\u2461"}],"title":"7.1. Stack Overflow"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-rangeerror\u2460\u2462"}],"title":"7.2. Out of Memory"}],"url":"https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror"}, |
| "4380dc8b": {"dfnID":"4380dc8b","dfnText":"is not a Number","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-ecmascript-language-types-number-type"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-ecmascript-language-types-number-type\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type"}, |
| "43b980ff": {"dfnID":"43b980ff","dfnText":"valid","external":true,"refSections":[{"refs":[{"id":"ref-for-valid-module"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-valid-module\u2460"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/valid/modules.html#valid-module"}, |
| "486e6f39": {"dfnID":"486e6f39","dfnText":"func (for external-type)","external":true,"refSections":[{"refs":[{"id":"ref-for-external-types"},{"id":"ref-for-external-types\u2460"},{"id":"ref-for-external-types\u2461"},{"id":"ref-for-external-types\u2462"},{"id":"ref-for-external-types\u2463"},{"id":"ref-for-external-types\u2464"},{"id":"ref-for-external-types\u2465"},{"id":"ref-for-external-types\u2466"},{"id":"ref-for-external-types\u2467"},{"id":"ref-for-external-types\u2468"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-external-types\u2460\u24ea"},{"id":"ref-for-external-types\u2460\u2460"},{"id":"ref-for-external-types\u2460\u2461"},{"id":"ref-for-external-types\u2460\u2462"},{"id":"ref-for-external-types\u2460\u2463"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "49bbfc32": {"dfnID":"49bbfc32","dfnText":"BigInt","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-ecmascript-language-types-bigint-type"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-ecmascript-language-types-bigint-type\u2460"}],"title":"BigInt Integration"}],"url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-bigint-type"}, |
| "4a854a91": {"dfnID":"4a854a91","dfnText":"ToString","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-tostring"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tostring"}, |
| "4ad913ae": {"dfnID":"4ad913ae","dfnText":"surrounding agent","external":true,"refSections":[{"refs":[{"id":"ref-for-surrounding-agent"},{"id":"ref-for-surrounding-agent\u2460"},{"id":"ref-for-surrounding-agent\u2461"},{"id":"ref-for-surrounding-agent\u2462"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-surrounding-agent\u2463"},{"id":"ref-for-surrounding-agent\u2464"},{"id":"ref-for-surrounding-agent\u2465"},{"id":"ref-for-surrounding-agent\u2466"},{"id":"ref-for-surrounding-agent\u2467"},{"id":"ref-for-surrounding-agent\u2468"},{"id":"ref-for-surrounding-agent\u2460\u24ea"},{"id":"ref-for-surrounding-agent\u2460\u2460"},{"id":"ref-for-surrounding-agent\u2460\u2461"},{"id":"ref-for-surrounding-agent\u2460\u2462"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-surrounding-agent\u2460\u2463"},{"id":"ref-for-surrounding-agent\u2460\u2464"},{"id":"ref-for-surrounding-agent\u2460\u2465"},{"id":"ref-for-surrounding-agent\u2460\u2466"},{"id":"ref-for-surrounding-agent\u2460\u2467"},{"id":"ref-for-surrounding-agent\u2460\u2468"},{"id":"ref-for-surrounding-agent\u2461\u24ea"},{"id":"ref-for-surrounding-agent\u2461\u2460"},{"id":"ref-for-surrounding-agent\u2461\u2461"},{"id":"ref-for-surrounding-agent\u2461\u2462"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-surrounding-agent\u2461\u2463"},{"id":"ref-for-surrounding-agent\u2461\u2464"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-surrounding-agent\u2461\u2465"},{"id":"ref-for-surrounding-agent\u2461\u2466"},{"id":"ref-for-surrounding-agent\u2461\u2467"},{"id":"ref-for-surrounding-agent\u2461\u2468"},{"id":"ref-for-surrounding-agent\u2462\u24ea"},{"id":"ref-for-surrounding-agent\u2462\u2460"},{"id":"ref-for-surrounding-agent\u2462\u2461"},{"id":"ref-for-surrounding-agent\u2462\u2462"},{"id":"ref-for-surrounding-agent\u2462\u2463"},{"id":"ref-for-surrounding-agent\u2462\u2464"},{"id":"ref-for-surrounding-agent\u2462\u2465"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-surrounding-agent\u2462\u2466"},{"id":"ref-for-surrounding-agent\u2462\u2467"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-surrounding-agent\u2462\u2468"},{"id":"ref-for-surrounding-agent\u2463\u24ea"}],"title":"5.8. Garbage Collected Objects"},{"refs":[{"id":"ref-for-surrounding-agent\u2463\u2460"},{"id":"ref-for-surrounding-agent\u2463\u2461"},{"id":"ref-for-surrounding-agent\u2463\u2462"},{"id":"ref-for-surrounding-agent\u2463\u2463"},{"id":"ref-for-surrounding-agent\u2463\u2464"},{"id":"ref-for-surrounding-agent\u2463\u2465"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-surrounding-agent\u2463\u2466"},{"id":"ref-for-surrounding-agent\u2463\u2467"},{"id":"ref-for-surrounding-agent\u2463\u2468"}],"title":"5.9.1. JavaScript exceptions"},{"refs":[{"id":"ref-for-surrounding-agent\u2464\u24ea"}],"title":"6. Builtins"}],"url":"https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent"}, |
| "4adb26f1": {"dfnID":"4adb26f1","dfnText":"ToBigInt","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-tobigint"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tobigint"}, |
| "4c6c6f05": {"dfnID":"4c6c6f05","dfnText":"CreateArrayFromList","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-createarrayfromlist"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createarrayfromlist"}, |
| "4da9fc5c": {"dfnID":"4da9fc5c","dfnText":"ref.array","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "4f4736a6": {"dfnID":"4f4736a6","dfnText":"mathematical value","external":true,"refSections":[{"refs":[{"id":"ref-for-mathematical-value"},{"id":"ref-for-mathematical-value\u2460"},{"id":"ref-for-mathematical-value\u2461"},{"id":"ref-for-mathematical-value\u2462"},{"id":"ref-for-mathematical-value\u2463"},{"id":"ref-for-mathematical-value\u2464"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.github.io/ecma262/#mathematical-value"}, |
| "4fc7e98f": {"dfnID":"4fc7e98f","dfnText":"global","external":true,"refSections":[{"refs":[{"id":"ref-for-external-types"},{"id":"ref-for-external-types\u2460"},{"id":"ref-for-external-types\u2461"},{"id":"ref-for-external-types\u2462"},{"id":"ref-for-external-types\u2463"},{"id":"ref-for-external-types\u2464"},{"id":"ref-for-external-types\u2465"},{"id":"ref-for-external-types\u2466"},{"id":"ref-for-external-types\u2467"},{"id":"ref-for-external-types\u2468"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-external-types\u2460\u24ea"},{"id":"ref-for-external-types\u2460\u2460"},{"id":"ref-for-external-types\u2460\u2461"},{"id":"ref-for-external-types\u2460\u2462"},{"id":"ref-for-external-types\u2460\u2463"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "53275e46": {"dfnID":"53275e46","dfnText":"append","external":true,"refSections":[{"refs":[{"id":"ref-for-list-append"},{"id":"ref-for-list-append\u2460"},{"id":"ref-for-list-append\u2461"},{"id":"ref-for-list-append\u2462"},{"id":"ref-for-list-append\u2463"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-list-append\u2464"},{"id":"ref-for-list-append\u2465"},{"id":"ref-for-list-append\u2466"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-list-append\u2467"},{"id":"ref-for-list-append\u2468"},{"id":"ref-for-list-append\u2460\u24ea"},{"id":"ref-for-list-append\u2460\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-list-append\u2460\u2461"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-list-append\u2460\u2462"}],"title":"5.9. Exceptions"}],"url":"https://infra.spec.whatwg.org/#list-append"}, |
| "53306f8f": {"dfnID":"53306f8f","dfnText":"ConvertToInt","external":true,"refSections":[{"refs":[{"id":"ref-for-abstract-opdef-converttoint"}],"title":"5.6. Exported Functions"}],"url":"https://webidl.spec.whatwg.org/#abstract-opdef-converttoint"}, |
| "5372cca8": {"dfnID":"5372cca8","dfnText":"boolean","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-boolean"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-idl-boolean\u2460"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-idl-boolean\u2461"},{"id":"ref-for-idl-boolean\u2462"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#idl-boolean"}, |
| "56473266": {"dfnID":"56473266","dfnText":"exn_read","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-exn-read"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-embed-exn-read\u2460"},{"id":"ref-for-embed-exn-read\u2461"}],"title":"5.9. Exceptions"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-read"}, |
| "5672836e": {"dfnID":"5672836e","dfnText":"trap","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-trap"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-syntax-trap\u2460"},{"id":"ref-for-syntax-trap\u2461"}],"title":"6.1.4. fromCharCodeArray"},{"refs":[{"id":"ref-for-syntax-trap\u2462"},{"id":"ref-for-syntax-trap\u2463"}],"title":"6.1.5. intoCharCodeArray"},{"refs":[{"id":"ref-for-syntax-trap\u2464"}],"title":"6.1.7. fromCodePoint"},{"refs":[{"id":"ref-for-syntax-trap\u2465"}],"title":"6.1.8. charCodeAt"},{"refs":[{"id":"ref-for-syntax-trap\u2466"}],"title":"6.1.9. codePointAt"},{"refs":[{"id":"ref-for-syntax-trap\u2467"},{"id":"ref-for-syntax-trap\u2468"}],"title":"6.1.13. equals"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap"}, |
| "56f81a8e": {"dfnID":"56f81a8e","dfnText":"new","external":true,"refSections":[{"refs":[{"id":"ref-for-new"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-new\u2460"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-new\u2461"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-new\u2462"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-new\u2463"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-new\u2464"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#new"}, |
| "58788f9d": {"dfnID":"58788f9d","dfnText":"TypeError","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2461"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2462"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2463"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2464"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2465"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2466"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2467"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2468"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u24ea"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u2460"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u2461"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u2462"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u2463"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u2464"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u2465"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u2466"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u2467"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2460\u2468"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2461\u24ea"}],"title":"5.8. Garbage Collected Objects"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2461\u2460"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2461\u2461"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2461\u2462"},{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2461\u2463"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-sec-native-error-types-used-in-this-standard-typeerror\u2461\u2464"}],"title":"5.10. Error Objects"}],"url":"https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror"}, |
| "5b7339ce": {"dfnID":"5b7339ce","dfnText":"GetMethod","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-getmethod"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-getmethod"}, |
| "5ce71be2": {"dfnID":"5ce71be2","dfnText":"val_default","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-val-default"}],"title":"5.5. Globals"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-val-default"}, |
| "5f3abfd0": {"dfnID":"5f3abfd0","dfnText":"HostResizeArrayBuffer","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-hostresizearraybuffer"},{"id":"ref-for-sec-hostresizearraybuffer\u2460"}],"title":"5.3. Memories"}],"url":"https://tc39.es/proposal-resizablearraybuffer/#sec-hostresizearraybuffer"}, |
| "5f90bbfb": {"dfnID":"5f90bbfb","dfnText":"undefined","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-undefined"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-idl-undefined\u2460"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#idl-undefined"}, |
| "60e61e1a": {"dfnID":"60e61e1a","dfnText":"namespace object","external":true,"refSections":[{"refs":[{"id":"ref-for-dfn-namespace-object"},{"id":"ref-for-dfn-namespace-object\u2460"}],"title":"5.10. Error Objects"}],"url":"https://webidl.spec.whatwg.org/#dfn-namespace-object"}, |
| "61356085": {"dfnID":"61356085","dfnText":"embedding interface","external":true,"refSections":[{"refs":[{"id":"ref-for-appending/embedding.html"}],"title":"1. Introduction"}],"url":"https://webassembly.github.io/spec/core/#appending/embedding.html"}, |
| "640ee28c": {"dfnID":"640ee28c","dfnText":"ref.host","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "649608b9": {"dfnID":"649608b9","dfnText":"list","external":true,"refSections":[{"refs":[{"id":"ref-for-list"}],"title":"3. Notation"},{"refs":[{"id":"ref-for-list\u2460"},{"id":"ref-for-list\u2461"},{"id":"ref-for-list\u2462"}],"title":"5.6. Exported Functions"}],"url":"https://infra.spec.whatwg.org/#list"}, |
| "672fca90": {"dfnID":"672fca90","dfnText":"tag type","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-tagtype"},{"id":"ref-for-syntax-tagtype\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-syntax-tagtype\u2461"}],"title":"5.9.1. JavaScript exceptions"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-tagtype"}, |
| "679f4232": {"dfnID":"679f4232","dfnText":"ref.i31","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "69ce1dac": {"dfnID":"69ce1dac","dfnText":"memory type","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-memtype"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-memtype"}, |
| "6b815fdd": {"dfnID":"6b815fdd","dfnText":"is empty","external":true,"refSections":[{"refs":[{"id":"ref-for-list-is-empty"}],"title":"5. The WebAssembly Namespace"}],"url":"https://infra.spec.whatwg.org/#list-is-empty"}, |
| "6bdc3470": {"dfnID":"6bdc3470","dfnText":"i64","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-numtype"},{"id":"ref-for-syntax-numtype\u2460"},{"id":"ref-for-syntax-numtype\u2461"},{"id":"ref-for-syntax-numtype\u2462"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-syntax-numtype\u2463"},{"id":"ref-for-syntax-numtype\u2464"},{"id":"ref-for-syntax-numtype\u2465"},{"id":"ref-for-syntax-numtype\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-syntax-numtype\u2467"},{"id":"ref-for-syntax-numtype\u2468"},{"id":"ref-for-syntax-numtype\u2460\u24ea"},{"id":"ref-for-syntax-numtype\u2460\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-syntax-numtype\u2460\u2461"},{"id":"ref-for-syntax-numtype\u2460\u2462"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-syntax-numtype\u2460\u2463"}],"title":"BigInt Integration"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype"}, |
| "6c660071": {"dfnID":"6c660071","dfnText":"module grammar","external":true,"refSections":[{"refs":[{"id":"ref-for-binary-module"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/binary/modules.html#binary-module"}, |
| "6c6b1005": {"dfnID":"6c6b1005","dfnText":"any","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-any"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-idl-any\u2460"},{"id":"ref-for-idl-any\u2461"},{"id":"ref-for-idl-any\u2462"},{"id":"ref-for-idl-any\u2463"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-idl-any\u2464"},{"id":"ref-for-idl-any\u2465"},{"id":"ref-for-idl-any\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-idl-any\u2467"},{"id":"ref-for-idl-any\u2468"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#idl-any"}, |
| "6df10f44": {"dfnID":"6df10f44","dfnText":"CreateBuiltinFunction","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-createbuiltinfunction"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-createbuiltinfunction"}, |
| "71ea3880": {"dfnID":"71ea3880","dfnText":"var","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-mut"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-syntax-mut\u2460"},{"id":"ref-for-syntax-mut\u2461"},{"id":"ref-for-syntax-mut\u2462"}],"title":"5.5. Globals"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut"}, |
| "74269a03": {"dfnID":"74269a03","dfnText":"String.prototype.concat","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-string.prototype.concat"}],"title":"6.1.11. concat"}],"url":"https://tc39.github.io/ecma262/#sec-string.prototype.concat"}, |
| "746f6bc3": {"dfnID":"746f6bc3","dfnText":"memory instance","external":true,"refSections":[{"refs":[{"id":"ref-for-memory-instances"}],"title":"4.1. Interaction of the WebAssembly Store with JavaScript"},{"refs":[{"id":"ref-for-memory-instances\u2460"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#memory-instances"}, |
| "750115f9": {"dfnID":"750115f9","dfnText":"DefineMethodProperty","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-definemethodproperty"}],"title":"5.10. Error Objects"}],"url":"https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-definemethodproperty"}, |
| "76674d02": {"dfnID":"76674d02","dfnText":"module_exports","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-module-exports"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-embed-module-exports\u2460"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-exports"}, |
| "76ec690d": {"dfnID":"76ec690d","dfnText":"signed_31","external":true,"refSections":[{"refs":[{"id":"ref-for-aux-signed"},{"id":"ref-for-aux-signed\u2460"},{"id":"ref-for-aux-signed\u2461"},{"id":"ref-for-aux-signed\u2462"},{"id":"ref-for-aux-signed\u2463"},{"id":"ref-for-aux-signed\u2464"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed"}, |
| "77489c34": {"dfnID":"77489c34","dfnText":"global address","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-globaladdr"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-syntax-globaladdr\u2460"},{"id":"ref-for-syntax-globaladdr\u2461"},{"id":"ref-for-syntax-globaladdr\u2462"}],"title":"5.5. Globals"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-globaladdr"}, |
| "7b8dca78": {"dfnID":"7b8dca78","dfnText":"String.prototype.substring","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-string.prototype.substring"}],"title":"6.1.12. substring"}],"url":"https://tc39.github.io/ecma262/#sec-string.prototype.substring"}, |
| "7b8e8458": {"dfnID":"7b8e8458","dfnText":"\u211d","external":true,"refSections":[{"refs":[{"id":"ref-for-\u211d"},{"id":"ref-for-\u211d\u2460"},{"id":"ref-for-\u211d\u2461"},{"id":"ref-for-\u211d\u2462"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.github.io/ecma262/#\u211d"}, |
| "7c586764": {"dfnID":"7c586764","dfnText":"sequence","external":true,"refSections":[{"refs":[{"id":"ref-for-grammar-notation"}],"title":"3. Notation"}],"url":"https://webassembly.github.io/spec/core/syntax/conventions.html#grammar-notation"}, |
| "7ca4b8ff": {"dfnID":"7ca4b8ff","dfnText":"WebAssembly value","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "7deb6835": {"dfnID":"7deb6835","dfnText":"settings object","external":true,"refSections":[{"refs":[{"id":"ref-for-concept-realm-settings-object"}],"title":"5.6. Exported Functions"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#concept-realm-settings-object"}, |
| "8047ff82": {"dfnID":"8047ff82","dfnText":"nan","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-float"},{"id":"ref-for-syntax-float\u2460"},{"id":"ref-for-syntax-float\u2461"},{"id":"ref-for-syntax-float\u2462"},{"id":"ref-for-syntax-float\u2463"},{"id":"ref-for-syntax-float\u2464"},{"id":"ref-for-syntax-float\u2465"},{"id":"ref-for-syntax-float\u2466"},{"id":"ref-for-syntax-float\u2467"},{"id":"ref-for-syntax-float\u2468"},{"id":"ref-for-syntax-float\u2460\u24ea"},{"id":"ref-for-syntax-float\u2460\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "81131be0": {"dfnID":"81131be0","dfnText":"Call","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-call"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-sec-call\u2460"},{"id":"ref-for-sec-call\u2461"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-sec-call\u2462"}],"title":"6.1.7. fromCodePoint"},{"refs":[{"id":"ref-for-sec-call\u2463"}],"title":"6.1.9. codePointAt"},{"refs":[{"id":"ref-for-sec-call\u2464"}],"title":"6.1.11. concat"},{"refs":[{"id":"ref-for-sec-call\u2465"}],"title":"6.1.12. substring"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call"}, |
| "815c3a81": {"dfnID":"815c3a81","dfnText":"address type","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-addrtype"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-syntax-addrtype\u2460"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-addrtype"}, |
| "836ae954": {"dfnID":"836ae954","dfnText":"is not a String","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-ecmascript-language-types-string-type"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-sec-ecmascript-language-types-string-type\u2460"}],"title":"6.1.3. test"},{"refs":[{"id":"ref-for-sec-ecmascript-language-types-string-type\u2461"},{"id":"ref-for-sec-ecmascript-language-types-string-type\u2462"}],"title":"6.1.13. equals"}],"url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-string-type"}, |
| "84b454ff": {"dfnID":"84b454ff","dfnText":"ordered map","external":true,"refSections":[{"refs":[{"id":"ref-for-ordered-map"}],"title":"4.2. WebAssembly JS Object Caches"}],"url":"https://infra.spec.whatwg.org/#ordered-map"}, |
| "84eac0df": {"dfnID":"84eac0df","dfnText":"mem_grow","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-mem-grow"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-grow"}, |
| "85bce96e": {"dfnID":"85bce96e","dfnText":"limits","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-limits"},{"id":"ref-for-syntax-limits\u2460"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-limits"}, |
| "868a40c2": {"dfnID":"868a40c2","dfnText":"table type","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-tabletype"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-tabletype"}, |
| "8780316d": {"dfnID":"8780316d","dfnText":"module_imports","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-module-imports"},{"id":"ref-for-embed-module-imports\u2460"},{"id":"ref-for-embed-module-imports\u2461"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-embed-module-imports\u2462"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-imports"}, |
| "8855a9aa": {"dfnID":"8855a9aa","dfnText":"DOMString","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-DOMString"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-idl-DOMString\u2460"},{"id":"ref-for-idl-DOMString\u2461"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#idl-DOMString"}, |
| "886dee79": {"dfnID":"886dee79","dfnText":"Array","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-array-exotic-objects"}],"title":"Multiple Values"}],"url":"https://tc39.github.io/ecma262/#sec-array-exotic-objects"}, |
| "889e932f": {"dfnID":"889e932f","dfnText":"Exposed","external":true,"refSections":[{"refs":[{"id":"ref-for-Exposed"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-Exposed\u2460"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#Exposed"}, |
| "8b2a5c87": {"dfnID":"8b2a5c87","dfnText":"\u2124","external":true,"refSections":[{"refs":[{"id":"ref-for-\u2124"},{"id":"ref-for-\u2124\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.github.io/ecma262/#\u2124"}, |
| "903777ae": {"dfnID":"903777ae","dfnText":"exn_tag","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-exn-tag"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-embed-exn-tag\u2460"},{"id":"ref-for-embed-exn-tag\u2461"}],"title":"5.9. Exceptions"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-tag"}, |
| "9057d48e": {"dfnID":"9057d48e","dfnText":"global instance","external":true,"refSections":[{"refs":[{"id":"ref-for-global-instances"}],"title":"5.5. Globals"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#global-instances"}, |
| "9105068d": {"dfnID":"9105068d","dfnText":"f32","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-numtype"},{"id":"ref-for-syntax-numtype\u2460"},{"id":"ref-for-syntax-numtype\u2461"},{"id":"ref-for-syntax-numtype\u2462"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-syntax-numtype\u2463"},{"id":"ref-for-syntax-numtype\u2464"},{"id":"ref-for-syntax-numtype\u2465"},{"id":"ref-for-syntax-numtype\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-syntax-numtype\u2467"},{"id":"ref-for-syntax-numtype\u2468"},{"id":"ref-for-syntax-numtype\u2460\u24ea"},{"id":"ref-for-syntax-numtype\u2460\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-syntax-numtype\u2460\u2461"},{"id":"ref-for-syntax-numtype\u2460\u2462"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-syntax-numtype\u2460\u2463"}],"title":"BigInt Integration"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype"}, |
| "921f1639": {"dfnID":"921f1639","dfnText":"is a Number","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-ecmascript-language-types-number-type"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-ecmascript-language-types-number-type\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type"}, |
| "9233088d": {"dfnID":"9233088d","dfnText":"match_valtype","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-match-valtype"},{"id":"ref-for-embed-match-valtype\u2460"},{"id":"ref-for-embed-match-valtype\u2461"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-valtype"}, |
| "92d13070": {"dfnID":"92d13070","dfnText":"get a copy of the buffer source","external":true,"refSections":[{"refs":[{"id":"ref-for-dfn-get-buffer-source-copy"},{"id":"ref-for-dfn-get-buffer-source-copy\u2460"},{"id":"ref-for-dfn-get-buffer-source-copy\u2461"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-dfn-get-buffer-source-copy\u2462"}],"title":"5.1. Modules"}],"url":"https://webidl.spec.whatwg.org/#dfn-get-buffer-source-copy"}, |
| "93d2e53d": {"dfnID":"93d2e53d","dfnText":"i64.const","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "94f4c8ee": {"dfnID":"94f4c8ee","dfnText":"func_alloc","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-func-alloc"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-embed-func-alloc\u2460"}],"title":"6. Builtins"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-alloc"}, |
| "971914e6": {"dfnID":"971914e6","dfnText":"%Symbol.iterator%","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-well-known-symbols"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-well-known-symbols"}, |
| "97e3d406": {"dfnID":"97e3d406","dfnText":"module","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-module"},{"id":"ref-for-syntax-module\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webassembly.github.io/spec/core/syntax/modules.html#syntax-module"}, |
| "98bf2453": {"dfnID":"98bf2453","dfnText":"current frame","external":true,"refSections":[{"refs":[{"id":"ref-for-exec-notation-textual"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/exec/conventions.html#exec-notation-textual"}, |
| "98df36c9": {"dfnID":"98df36c9","dfnText":"table_write","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-table-write"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-write"}, |
| "9a03a0e9": {"dfnID":"9a03a0e9","dfnText":"funcref","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-reftype"},{"id":"ref-for-syntax-reftype\u2460"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-syntax-reftype\u2461"},{"id":"ref-for-syntax-reftype\u2462"},{"id":"ref-for-syntax-reftype\u2463"},{"id":"ref-for-syntax-reftype\u2464"},{"id":"ref-for-syntax-reftype\u2465"},{"id":"ref-for-syntax-reftype\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-syntax-reftype\u2467"},{"id":"ref-for-syntax-reftype\u2468"},{"id":"ref-for-syntax-reftype\u2460\u24ea"},{"id":"ref-for-syntax-reftype\u2460\u2460"},{"id":"ref-for-syntax-reftype\u2460\u2461"},{"id":"ref-for-syntax-reftype\u2460\u2462"},{"id":"ref-for-syntax-reftype\u2460\u2463"},{"id":"ref-for-syntax-reftype\u2460\u2464"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-syntax-reftype\u2460\u2465"},{"id":"ref-for-syntax-reftype\u2460\u2466"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-syntax-reftype\u2460\u2467"},{"id":"ref-for-syntax-reftype\u2460\u2468"}],"title":"5.9.1. JavaScript exceptions"},{"refs":[{"id":"ref-for-syntax-reftype\u2461\u24ea"}],"title":"Reference Types"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype"}, |
| "9a517a7d": {"dfnID":"9a517a7d","dfnText":"queue a task","external":true,"refSections":[{"refs":[{"id":"ref-for-queue-a-task"},{"id":"ref-for-queue-a-task\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task"}, |
| "9ab06711": {"dfnID":"9ab06711","dfnText":"ToNumber","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-tonumber"},{"id":"ref-for-sec-tonumber\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tonumber"}, |
| "9b36d7ac": {"dfnID":"9b36d7ac","dfnText":"MakeBasicObject","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-makebasicobject"}],"title":"5.8. Garbage Collected Objects"}],"url":"https://tc39.github.io/ecma262/#sec-makebasicobject"}, |
| "9cce47fd": {"dfnID":"9cce47fd","dfnText":"sequence","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-sequence"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-idl-sequence\u2460"},{"id":"ref-for-idl-sequence\u2461"},{"id":"ref-for-idl-sequence\u2462"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-idl-sequence\u2463"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-idl-sequence\u2464"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#idl-sequence"}, |
| "9dd8925c": {"dfnID":"9dd8925c","dfnText":"match_externtype","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-match-externtype"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-embed-match-externtype\u2460"}],"title":"6. Builtins"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-externtype"}, |
| "HostResizeArrayBuffer": {"dfnID":"HostResizeArrayBuffer","dfnText":"abstract operation HostResizeArrayBuffer","external":false,"refSections":[],"url":"#HostResizeArrayBuffer"}, |
| "a-new-exported-function": {"dfnID":"a-new-exported-function","dfnText":"a new Exported Function","external":false,"refSections":[{"refs":[{"id":"ref-for-a-new-exported-function"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-a-new-exported-function\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-a-new-exported-function\u2461"}],"title":"6. Builtins"}],"url":"#a-new-exported-function"}, |
| "a-new-exported-gc-object": {"dfnID":"a-new-exported-gc-object","dfnText":"a new Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-a-new-exported-gc-object"},{"id":"ref-for-a-new-exported-gc-object\u2460"}],"title":"5.6. Exported Functions"}],"url":"#a-new-exported-gc-object"}, |
| "a0559a7c": {"dfnID":"a0559a7c","dfnText":"js-unsigned-long","external":true,"refSections":[{"refs":[{"id":"ref-for-js-unsigned-long"}],"title":"5.6. Exported Functions"}],"url":"https://heycam.github.io/webidl/#js-unsigned-long"}, |
| "a2df2252": {"dfnID":"a2df2252","dfnText":"IteratorToList","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-iteratortolist"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iteratortolist"}, |
| "a32c65d4": {"dfnID":"a32c65d4","dfnText":"implements","external":true,"refSections":[{"refs":[{"id":"ref-for-implements"},{"id":"ref-for-implements\u2460"},{"id":"ref-for-implements\u2461"},{"id":"ref-for-implements\u2462"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-implements\u2463"}],"title":"5.6. Exported Functions"}],"url":"https://webidl.spec.whatwg.org/#implements"}, |
| "a43f3aaf": {"dfnID":"a43f3aaf","dfnText":"customsec","external":true,"refSections":[{"refs":[{"id":"ref-for-binary-customsec"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/binary/modules.html#binary-customsec"}, |
| "a5e80a0a": {"dfnID":"a5e80a0a","dfnText":"String.prototype.codePointAt","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-string.prototype.codepointat"}],"title":"6.1.9. codePointAt"}],"url":"https://tc39.github.io/ecma262/#sec-string.prototype.codepointat"}, |
| "a653126b": {"dfnID":"a653126b","dfnText":"agent","external":true,"refSections":[{"refs":[{"id":"ref-for-agent"}],"title":"4.1. Interaction of the WebAssembly Store with JavaScript"},{"refs":[{"id":"ref-for-agent\u2460"},{"id":"ref-for-agent\u2461"}],"title":"4.2. WebAssembly JS Object Caches"}],"url":"https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#agent"}, |
| "a6ac3d87": {"dfnID":"a6ac3d87","dfnText":"i32.const","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "a72449dd": {"dfnID":"a72449dd","dfnText":"in parallel","external":true,"refSections":[{"refs":[{"id":"ref-for-in-parallel"},{"id":"ref-for-in-parallel\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"https://html.spec.whatwg.org/multipage/infrastructure.html#in-parallel"}, |
| "a7321e13": {"dfnID":"a7321e13","dfnText":"const","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-mut"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-syntax-mut\u2460"},{"id":"ref-for-syntax-mut\u2461"},{"id":"ref-for-syntax-mut\u2462"}],"title":"5.5. Globals"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut"}, |
| "a7b8aad7": {"dfnID":"a7b8aad7","dfnText":"IsLessThan","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-islessthan"}],"title":"6.1.14. compare"}],"url":"https://tc39.github.io/ecma262/#sec-islessthan"}, |
| "a7f74307": {"dfnID":"a7f74307","dfnText":"array address","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-arrayaddr"}],"title":"4.2. WebAssembly JS Object Caches"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-arrayaddr"}, |
| "a93d50a7": {"dfnID":"a93d50a7","dfnText":"mem_type","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-mem-type"},{"id":"ref-for-embed-mem-type\u2460"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-type"}, |
| "aaa7a4ae": {"dfnID":"aaa7a4ae","dfnText":"mem_alloc","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-mem-alloc"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-alloc"}, |
| "aab848f2": {"dfnID":"aab848f2","dfnText":"table_size","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-table-size"},{"id":"ref-for-embed-table-size\u2460"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-size"}, |
| "ab79fc0f": {"dfnID":"ab79fc0f","dfnText":"table_type","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-table-type"},{"id":"ref-for-embed-table-type\u2460"},{"id":"ref-for-embed-table-type\u2461"},{"id":"ref-for-embed-table-type\u2462"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-type"}, |
| "abf85593": {"dfnID":"abf85593","dfnText":"Get","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-get-o-p"},{"id":"ref-for-sec-get-o-p\u2460"},{"id":"ref-for-sec-get-o-p\u2461"}],"title":"5. The WebAssembly Namespace"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-get-o-p"}, |
| "abstract-opdef-charcodeat": {"dfnID":"abstract-opdef-charcodeat","dfnText":"CharCodeAt(string, index)","external":false,"refSections":[{"refs":[{"id":"ref-for-abstract-opdef-charcodeat"}],"title":"6.1.5. intoCharCodeArray"},{"refs":[{"id":"ref-for-abstract-opdef-charcodeat\u2460"}],"title":"6.1.8. charCodeAt"}],"url":"#abstract-opdef-charcodeat"}, |
| "abstract-opdef-fromcharcode": {"dfnID":"abstract-opdef-fromcharcode","dfnText":"FromCharCode(v)","external":false,"refSections":[{"refs":[{"id":"ref-for-abstract-opdef-fromcharcode"}],"title":"6.1.4. fromCharCodeArray"},{"refs":[{"id":"ref-for-abstract-opdef-fromcharcode\u2460"}],"title":"6.1.6. fromCharCode"}],"url":"#abstract-opdef-fromcharcode"}, |
| "abstract-opdef-unwrapstring": {"dfnID":"abstract-opdef-unwrapstring","dfnText":"UnwrapString(v)","external":false,"refSections":[{"refs":[{"id":"ref-for-abstract-opdef-unwrapstring"}],"title":"6.1.2. cast"},{"refs":[{"id":"ref-for-abstract-opdef-unwrapstring\u2460"}],"title":"6.1.5. intoCharCodeArray"},{"refs":[{"id":"ref-for-abstract-opdef-unwrapstring\u2461"}],"title":"6.1.8. charCodeAt"},{"refs":[{"id":"ref-for-abstract-opdef-unwrapstring\u2462"}],"title":"6.1.9. codePointAt"},{"refs":[{"id":"ref-for-abstract-opdef-unwrapstring\u2463"}],"title":"6.1.10. length"},{"refs":[{"id":"ref-for-abstract-opdef-unwrapstring\u2464"},{"id":"ref-for-abstract-opdef-unwrapstring\u2465"}],"title":"6.1.11. concat"},{"refs":[{"id":"ref-for-abstract-opdef-unwrapstring\u2466"}],"title":"6.1.12. substring"},{"refs":[{"id":"ref-for-abstract-opdef-unwrapstring\u2467"},{"id":"ref-for-abstract-opdef-unwrapstring\u2468"}],"title":"6.1.14. compare"}],"url":"#abstract-opdef-unwrapstring"}, |
| "acea0ba2": {"dfnID":"acea0ba2","dfnText":"tag (for external value)","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-externval"},{"id":"ref-for-syntax-externval\u2460"},{"id":"ref-for-syntax-externval\u2461"},{"id":"ref-for-syntax-externval\u2462"},{"id":"ref-for-syntax-externval\u2463"},{"id":"ref-for-syntax-externval\u2464"},{"id":"ref-for-syntax-externval\u2465"},{"id":"ref-for-syntax-externval\u2466"},{"id":"ref-for-syntax-externval\u2467"},{"id":"ref-for-syntax-externval\u2468"},{"id":"ref-for-syntax-externval\u2460\u24ea"},{"id":"ref-for-syntax-externval\u2460\u2460"},{"id":"ref-for-syntax-externval\u2460\u2461"},{"id":"ref-for-syntax-externval\u2460\u2462"},{"id":"ref-for-syntax-externval\u2460\u2463"},{"id":"ref-for-syntax-externval\u2460\u2464"},{"id":"ref-for-syntax-externval\u2460\u2465"},{"id":"ref-for-syntax-externval\u2460\u2466"},{"id":"ref-for-syntax-externval\u2460\u2467"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval"}, |
| "ad1c5b3c": {"dfnID":"ad1c5b3c","dfnText":"valtype","external":true,"refSections":[{"refs":[{"id":"ref-for-match-valtype"},{"id":"ref-for-match-valtype\u2460"},{"id":"ref-for-match-valtype\u2461"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-match-valtype\u2462"},{"id":"ref-for-match-valtype\u2463"},{"id":"ref-for-match-valtype\u2464"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-match-valtype\u2465"},{"id":"ref-for-match-valtype\u2466"}],"title":"5.9. Exceptions"}],"url":"https://webassembly.github.io/spec/core/valid/matching.html#match-valtype"}, |
| "adc63453": {"dfnID":"adc63453","dfnText":"is not a BigInt","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-ecmascript-language-types-bigint-type"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-ecmascript-language-types-bigint-type\u2460"}],"title":"BigInt Integration"}],"url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-bigint-type"}, |
| "addressvaluetou64": {"dfnID":"addressvaluetou64","dfnText":"AddressValueToU64","external":false,"refSections":[{"refs":[{"id":"ref-for-addressvaluetou64"},{"id":"ref-for-addressvaluetou64\u2460"},{"id":"ref-for-addressvaluetou64\u2461"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-addressvaluetou64\u2462"},{"id":"ref-for-addressvaluetou64\u2463"},{"id":"ref-for-addressvaluetou64\u2464"},{"id":"ref-for-addressvaluetou64\u2465"},{"id":"ref-for-addressvaluetou64\u2466"}],"title":"5.4. Tables"}],"url":"#addressvaluetou64"}, |
| "ae59bd82": {"dfnID":"ae59bd82","dfnText":"store","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-store"}],"title":"4.1. Interaction of the WebAssembly Store with JavaScript"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-store"}, |
| "associated-store": {"dfnID":"associated-store","dfnText":"associated store","external":false,"refSections":[{"refs":[{"id":"ref-for-associated-store"},{"id":"ref-for-associated-store\u2460"},{"id":"ref-for-associated-store\u2461"},{"id":"ref-for-associated-store\u2462"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-associated-store\u2463"},{"id":"ref-for-associated-store\u2464"},{"id":"ref-for-associated-store\u2465"},{"id":"ref-for-associated-store\u2466"},{"id":"ref-for-associated-store\u2467"},{"id":"ref-for-associated-store\u2468"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-associated-store\u2460\u24ea"},{"id":"ref-for-associated-store\u2460\u2460"},{"id":"ref-for-associated-store\u2460\u2461"},{"id":"ref-for-associated-store\u2460\u2462"},{"id":"ref-for-associated-store\u2460\u2463"},{"id":"ref-for-associated-store\u2460\u2464"},{"id":"ref-for-associated-store\u2460\u2465"},{"id":"ref-for-associated-store\u2460\u2466"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-associated-store\u2460\u2467"},{"id":"ref-for-associated-store\u2460\u2468"},{"id":"ref-for-associated-store\u2461\u24ea"},{"id":"ref-for-associated-store\u2461\u2460"},{"id":"ref-for-associated-store\u2461\u2461"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-associated-store\u2461\u2462"},{"id":"ref-for-associated-store\u2461\u2463"},{"id":"ref-for-associated-store\u2461\u2464"},{"id":"ref-for-associated-store\u2461\u2465"},{"id":"ref-for-associated-store\u2461\u2466"},{"id":"ref-for-associated-store\u2461\u2467"},{"id":"ref-for-associated-store\u2461\u2468"},{"id":"ref-for-associated-store\u2462\u24ea"},{"id":"ref-for-associated-store\u2462\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-associated-store\u2462\u2461"},{"id":"ref-for-associated-store\u2462\u2462"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-associated-store\u2462\u2463"}],"title":"5.8. Garbage Collected Objects"},{"refs":[{"id":"ref-for-associated-store\u2462\u2464"},{"id":"ref-for-associated-store\u2462\u2465"},{"id":"ref-for-associated-store\u2462\u2466"},{"id":"ref-for-associated-store\u2462\u2467"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-associated-store\u2462\u2468"},{"id":"ref-for-associated-store\u2463\u24ea"},{"id":"ref-for-associated-store\u2463\u2460"}],"title":"5.9.1. JavaScript exceptions"},{"refs":[{"id":"ref-for-associated-store\u2463\u2461"}],"title":"6. Builtins"}],"url":"#associated-store"}, |
| "asynchronously-compile-a-webassembly-module": {"dfnID":"asynchronously-compile-a-webassembly-module","dfnText":"asynchronously compile a WebAssembly module","external":false,"refSections":[{"refs":[{"id":"ref-for-asynchronously-compile-a-webassembly-module"},{"id":"ref-for-asynchronously-compile-a-webassembly-module\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"#asynchronously-compile-a-webassembly-module"}, |
| "asynchronously-instantiate-a-webassembly-module": {"dfnID":"asynchronously-instantiate-a-webassembly-module","dfnText":"asynchronously instantiate a WebAssembly module","external":false,"refSections":[{"refs":[{"id":"ref-for-asynchronously-instantiate-a-webassembly-module"},{"id":"ref-for-asynchronously-instantiate-a-webassembly-module\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"#asynchronously-instantiate-a-webassembly-module"}, |
| "b0d7f3c3": {"dfnID":"b0d7f3c3","dfnText":"USVString","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-USVString"},{"id":"ref-for-idl-USVString\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-idl-USVString\u2461"},{"id":"ref-for-idl-USVString\u2462"},{"id":"ref-for-idl-USVString\u2463"}],"title":"5.1. Modules"}],"url":"https://webidl.spec.whatwg.org/#idl-USVString"}, |
| "b107f911": {"dfnID":"b107f911","dfnText":"current Realm","external":true,"refSections":[{"refs":[{"id":"ref-for-current-realm"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.github.io/ecma262/#current-realm"}, |
| "b262501e": {"dfnID":"b262501e","dfnText":"reject","external":true,"refSections":[{"refs":[{"id":"ref-for-reject"},{"id":"ref-for-reject\u2460"},{"id":"ref-for-reject\u2461"},{"id":"ref-for-reject\u2462"},{"id":"ref-for-reject\u2463"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webidl.spec.whatwg.org/#reject"}, |
| "b29f5d72": {"dfnID":"b29f5d72","dfnText":"ToBigInt64","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-tobigint64"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tobigint64"}, |
| "b4cfa5ce": {"dfnID":"b4cfa5ce","dfnText":"throw","external":true,"refSections":[{"refs":[{"id":"ref-for-dfn-throw"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-dfn-throw\u2460"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-dfn-throw\u2461"},{"id":"ref-for-dfn-throw\u2462"},{"id":"ref-for-dfn-throw\u2463"}],"title":"5.6. Exported Functions"}],"url":"https://webidl.spec.whatwg.org/#dfn-throw"}, |
| "b5c3b552": {"dfnID":"b5c3b552","dfnText":"prepare to run a callback","external":true,"refSections":[{"refs":[{"id":"ref-for-prepare-to-run-a-callback"}],"title":"5.6. Exported Functions"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-a-callback"}, |
| "b6a1ae3f": {"dfnID":"b6a1ae3f","dfnText":"clean up after running script","external":true,"refSections":[{"refs":[{"id":"ref-for-clean-up-after-running-script"}],"title":"5.6. Exported Functions"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script"}, |
| "baaf40e3": {"dfnID":"baaf40e3","dfnText":"module_instantiate","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-module-instantiate"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-instantiate"}, |
| "bb2af9ca": {"dfnID":"bb2af9ca","dfnText":"host address","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-hostaddr"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-syntax-hostaddr\u2460"},{"id":"ref-for-syntax-hostaddr\u2461"},{"id":"ref-for-syntax-hostaddr\u2462"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostaddr"}, |
| "bb4be968": {"dfnID":"bb4be968","dfnText":"f32.const","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "bb8f2f23": {"dfnID":"bb8f2f23","dfnText":"create a namespace object","external":true,"refSections":[{"refs":[{"id":"ref-for-create-a-namespace-object"}],"title":"5.10. Error Objects"}],"url":"https://heycam.github.io/webidl/#create-a-namespace-object"}, |
| "bdbd19d1": {"dfnID":"bdbd19d1","dfnText":"Promise","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-promise"},{"id":"ref-for-idl-promise\u2460"},{"id":"ref-for-idl-promise\u2461"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webidl.spec.whatwg.org/#idl-promise"}, |
| "builtin-set-name": {"dfnID":"builtin-set-name","dfnText":"name","external":false,"refSections":[{"refs":[{"id":"ref-for-builtin-set-name"}],"title":"6.1. String Builtins"}],"url":"#builtin-set-name"}, |
| "builtin-set-qualified-name": {"dfnID":"builtin-set-qualified-name","dfnText":"qualified name","external":false,"refSections":[{"refs":[{"id":"ref-for-builtin-set-qualified-name"}],"title":"6.1. String Builtins"}],"url":"#builtin-set-qualified-name"}, |
| "c01cbda0": {"dfnID":"c01cbda0","dfnText":"EnforceRange","external":true,"refSections":[{"refs":[{"id":"ref-for-EnforceRange\u2463"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#EnforceRange"}, |
| "c2359c09": {"dfnID":"c2359c09","dfnText":"prepare to run script","external":true,"refSections":[{"refs":[{"id":"ref-for-prepare-to-run-script"}],"title":"5.6. Exported Functions"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-script"}, |
| "c3871e59": {"dfnID":"c3871e59","dfnText":"ref.null","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "c3b271ac": {"dfnID":"c3b271ac","dfnText":"\ud835\udd3d","external":true,"refSections":[{"refs":[{"id":"ref-for-\ud835\udd3d"},{"id":"ref-for-\ud835\udd3d\u2460"},{"id":"ref-for-\ud835\udd3d\u2461"},{"id":"ref-for-\ud835\udd3d\u2462"},{"id":"ref-for-\ud835\udd3d\u2463"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.github.io/ecma262/#\ud835\udd3d"}, |
| "c3b2d08c": {"dfnID":"c3b2d08c","dfnText":"task source","external":true,"refSections":[{"refs":[{"id":"ref-for-task-source"}],"title":"5. The WebAssembly Namespace"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#task-source"}, |
| "c42599d7": {"dfnID":"c42599d7","dfnText":"tag_type","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-tag-type"},{"id":"ref-for-embed-tag-type\u2460"}],"title":"5.9. Exceptions"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-tag-type"}, |
| "c44f39b6": {"dfnID":"c44f39b6","dfnText":"error","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-error"},{"id":"ref-for-embed-error\u2460"},{"id":"ref-for-embed-error\u2461"},{"id":"ref-for-embed-error\u2462"},{"id":"ref-for-embed-error\u2463"},{"id":"ref-for-embed-error\u2464"},{"id":"ref-for-embed-error\u2465"},{"id":"ref-for-embed-error\u2466"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-embed-error\u2467"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-embed-error\u2468"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-embed-error\u2460\u24ea"},{"id":"ref-for-embed-error\u2460\u2460"},{"id":"ref-for-embed-error\u2460\u2461"},{"id":"ref-for-embed-error\u2460\u2462"},{"id":"ref-for-embed-error\u2460\u2463"},{"id":"ref-for-embed-error\u2460\u2464"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-embed-error\u2460\u2465"},{"id":"ref-for-embed-error\u2460\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-embed-error\u2460\u2467"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error"}, |
| "c48cd0b9": {"dfnID":"c48cd0b9","dfnText":"String","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-string-object"},{"id":"ref-for-sec-string-object\u2460"},{"id":"ref-for-sec-string-object\u2461"}],"title":"6.1. String Builtins"}],"url":"https://tc39.github.io/ecma262/#sec-string-object"}, |
| "c8a6c84a": {"dfnID":"c8a6c84a","dfnText":"table","external":true,"refSections":[{"refs":[{"id":"ref-for-external-types"},{"id":"ref-for-external-types\u2460"},{"id":"ref-for-external-types\u2461"},{"id":"ref-for-external-types\u2462"},{"id":"ref-for-external-types\u2463"},{"id":"ref-for-external-types\u2464"},{"id":"ref-for-external-types\u2465"},{"id":"ref-for-external-types\u2466"},{"id":"ref-for-external-types\u2467"},{"id":"ref-for-external-types\u2468"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-external-types\u2460\u24ea"},{"id":"ref-for-external-types\u2460\u2460"},{"id":"ref-for-external-types\u2460\u2461"},{"id":"ref-for-external-types\u2460\u2462"},{"id":"ref-for-external-types\u2460\u2463"}],"title":"5.1. Modules"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "c8c81d72": {"dfnID":"c8c81d72","dfnText":"external value","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-externval"},{"id":"ref-for-syntax-externval\u2460"},{"id":"ref-for-syntax-externval\u2461"},{"id":"ref-for-syntax-externval\u2462"},{"id":"ref-for-syntax-externval\u2463"},{"id":"ref-for-syntax-externval\u2464"},{"id":"ref-for-syntax-externval\u2465"},{"id":"ref-for-syntax-externval\u2466"},{"id":"ref-for-syntax-externval\u2467"},{"id":"ref-for-syntax-externval\u2468"},{"id":"ref-for-syntax-externval\u2460\u24ea"},{"id":"ref-for-syntax-externval\u2460\u2460"},{"id":"ref-for-syntax-externval\u2460\u2461"},{"id":"ref-for-syntax-externval\u2460\u2462"},{"id":"ref-for-syntax-externval\u2460\u2463"},{"id":"ref-for-syntax-externval\u2460\u2464"},{"id":"ref-for-syntax-externval\u2460\u2465"},{"id":"ref-for-syntax-externval\u2460\u2466"},{"id":"ref-for-syntax-externval\u2460\u2467"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval"}, |
| "ca17d396": {"dfnID":"ca17d396","dfnText":"function address","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-funcaddr"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-syntax-funcaddr\u2460"},{"id":"ref-for-syntax-funcaddr\u2461"},{"id":"ref-for-syntax-funcaddr\u2462"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-funcaddr"}, |
| "call-an-exported-function": {"dfnID":"call-an-exported-function","dfnText":"call an Exported Function","external":false,"refSections":[{"refs":[{"id":"ref-for-call-an-exported-function"},{"id":"ref-for-call-an-exported-function\u2460"}],"title":"5.6. Exported Functions"}],"url":"#call-an-exported-function"}, |
| "cd4b1dc4": {"dfnID":"cd4b1dc4","dfnText":"!","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2463"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2465"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2466"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2467"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u24ea"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2460"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2462"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2463"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2465"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2466"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2467"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u24ea"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2460"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2463"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2465"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2466"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2467"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u24ea"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2460"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2463"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2465"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2466"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2467"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2468"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u24ea"}],"title":"5.10. Error Objects"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2460"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2461"}],"title":"6. Builtins"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2463"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2464"}],"title":"6.1.2. cast"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2465"}],"title":"6.1.5. intoCharCodeArray"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2466"}],"title":"6.1.7. fromCodePoint"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2467"}],"title":"6.1.8. charCodeAt"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u24ea"}],"title":"6.1.9. codePointAt"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2460"}],"title":"6.1.10. length"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2463"}],"title":"6.1.11. concat"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2465"}],"title":"6.1.12. substring"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2466"}],"title":"6.1.13. equals"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2467"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2465\u24ea"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2465\u2460"}],"title":"6.1.14. compare"}],"url":"https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands"}, |
| "cdfd15a5": {"dfnID":"cdfd15a5","dfnText":"ref.func","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "cf718107": {"dfnID":"cf718107","dfnText":"ref.struct","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "compile-a-webassembly-module": {"dfnID":"compile-a-webassembly-module","dfnText":"compile a WebAssembly module","external":false,"refSections":[{"refs":[{"id":"ref-for-compile-a-webassembly-module"},{"id":"ref-for-compile-a-webassembly-module\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-compile-a-webassembly-module\u2461"}],"title":"5.1. Modules"}],"url":"#compile-a-webassembly-module"}, |
| "construct-a-webassembly-module-object": {"dfnID":"construct-a-webassembly-module-object","dfnText":"construct a WebAssembly module object","external":false,"refSections":[{"refs":[{"id":"ref-for-construct-a-webassembly-module-object"}],"title":"5. The WebAssembly Namespace"}],"url":"#construct-a-webassembly-module-object"}, |
| "create-a-builtin-function": {"dfnID":"create-a-builtin-function","dfnText":"create a builtin function","external":false,"refSections":[{"refs":[{"id":"ref-for-create-a-builtin-function"}],"title":"6. Builtins"}],"url":"#create-a-builtin-function"}, |
| "create-a-fixed-length-memory-buffer": {"dfnID":"create-a-fixed-length-memory-buffer","dfnText":"create a fixed length memory buffer","external":false,"refSections":[{"refs":[{"id":"ref-for-create-a-fixed-length-memory-buffer"},{"id":"ref-for-create-a-fixed-length-memory-buffer\u2460"},{"id":"ref-for-create-a-fixed-length-memory-buffer\u2461"}],"title":"5.3. Memories"}],"url":"#create-a-fixed-length-memory-buffer"}, |
| "create-a-global-object": {"dfnID":"create-a-global-object","dfnText":"create a global object","external":false,"refSections":[{"refs":[{"id":"ref-for-create-a-global-object"}],"title":"5. The WebAssembly Namespace"}],"url":"#create-a-global-object"}, |
| "create-a-host-function": {"dfnID":"create-a-host-function","dfnText":"create a host function","external":false,"refSections":[{"refs":[{"id":"ref-for-create-a-host-function"}],"title":"5. The WebAssembly Namespace"}],"url":"#create-a-host-function"}, |
| "create-a-memory-object": {"dfnID":"create-a-memory-object","dfnText":"create a memory object","external":false,"refSections":[{"refs":[{"id":"ref-for-create-a-memory-object"}],"title":"5. The WebAssembly Namespace"}],"url":"#create-a-memory-object"}, |
| "create-a-resizable-memory-buffer": {"dfnID":"create-a-resizable-memory-buffer","dfnText":"create a resizable memory buffer","external":false,"refSections":[{"refs":[{"id":"ref-for-create-a-resizable-memory-buffer"}],"title":"5.3. Memories"}],"url":"#create-a-resizable-memory-buffer"}, |
| "create-a-table-object": {"dfnID":"create-a-table-object","dfnText":"create a table object","external":false,"refSections":[{"refs":[{"id":"ref-for-create-a-table-object"}],"title":"5. The WebAssembly Namespace"}],"url":"#create-a-table-object"}, |
| "create-a-tag-object": {"dfnID":"create-a-tag-object","dfnText":"create a Tag object","external":false,"refSections":[{"refs":[{"id":"ref-for-create-a-tag-object"},{"id":"ref-for-create-a-tag-object\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"#create-a-tag-object"}, |
| "create-an-exception-object": {"dfnID":"create-an-exception-object","dfnText":"create an Exception object","external":false,"refSections":[{"refs":[{"id":"ref-for-create-an-exception-object"}],"title":"5.6. Exported Functions"}],"url":"#create-an-exception-object"}, |
| "create-an-exports-object": {"dfnID":"create-an-exports-object","dfnText":"create an exports object","external":false,"refSections":[{"refs":[{"id":"ref-for-create-an-exports-object"}],"title":"5. The WebAssembly Namespace"}],"url":"#create-an-exports-object"}, |
| "d2c61922": {"dfnID":"d2c61922","dfnText":"CreateDataProperty","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-createdataproperty"},{"id":"ref-for-sec-createdataproperty\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-createdataproperty\u2461"}],"title":"6. Builtins"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createdataproperty"}, |
| "d388e2b5": {"dfnID":"d388e2b5","dfnText":"throw_ref","external":true,"refSections":[{"refs":[{"id":"ref-for-exec-throw-ref"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/instructions.html#exec-throw-ref"}, |
| "d39a7bec": {"dfnID":"d39a7bec","dfnText":"\u2212\u221e","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-float"},{"id":"ref-for-syntax-float\u2460"},{"id":"ref-for-syntax-float\u2461"},{"id":"ref-for-syntax-float\u2462"},{"id":"ref-for-syntax-float\u2463"},{"id":"ref-for-syntax-float\u2464"},{"id":"ref-for-syntax-float\u2465"},{"id":"ref-for-syntax-float\u2466"},{"id":"ref-for-syntax-float\u2467"},{"id":"ref-for-syntax-float\u2468"},{"id":"ref-for-syntax-float\u2460\u24ea"},{"id":"ref-for-syntax-float\u2460\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "d5ac3b38": {"dfnID":"d5ac3b38","dfnText":"clean up after running a callback","external":true,"refSections":[{"refs":[{"id":"ref-for-clean-up-after-running-a-callback"}],"title":"5.6. Exported Functions"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-a-callback"}, |
| "d5e3a033": {"dfnID":"d5e3a033","dfnText":"store_init","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-store-init"}],"title":"4.1. Interaction of the WebAssembly Store with JavaScript"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-store-init"}, |
| "d7a47d32": {"dfnID":"d7a47d32","dfnText":"DetachArrayBuffer","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-detacharraybuffer"},{"id":"ref-for-sec-detacharraybuffer\u2460"},{"id":"ref-for-sec-detacharraybuffer\u2461"}],"title":"5.3. Memories"}],"url":"https://tc39.es/ecma262/multipage/structured-data.html#sec-detacharraybuffer"}, |
| "d7af7adc": {"dfnID":"d7af7adc","dfnText":"incumbent settings object","external":true,"refSections":[{"refs":[{"id":"ref-for-incumbent-settings-object"}],"title":"5.6. Exported Functions"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#incumbent-settings-object"}, |
| "d83ccb33": {"dfnID":"d83ccb33","dfnText":"GetIteratorFromMethod","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-getiteratorfrommethod"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-getiteratorfrommethod"}, |
| "dacde8b5": {"dfnID":"dacde8b5","dfnText":"a new promise","external":true,"refSections":[{"refs":[{"id":"ref-for-a-new-promise"},{"id":"ref-for-a-new-promise\u2460"},{"id":"ref-for-a-new-promise\u2461"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webidl.spec.whatwg.org/#a-new-promise"}, |
| "dc07163b": {"dfnID":"dc07163b","dfnText":"IsCallable","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-iscallable"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-iscallable\u2460"},{"id":"ref-for-sec-iscallable\u2461"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iscallable"}, |
| "dc5b915f": {"dfnID":"dc5b915f","dfnText":"table address","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-tableaddr"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-syntax-tableaddr\u2460"},{"id":"ref-for-syntax-tableaddr\u2461"},{"id":"ref-for-syntax-tableaddr\u2462"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tableaddr"}, |
| "dce4d017": {"dfnID":"dce4d017","dfnText":"page size","external":true,"refSections":[{"refs":[{"id":"ref-for-page-size"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#page-size"}, |
| "defaultvalue": {"dfnID":"defaultvalue","dfnText":"DefaultValue","external":false,"refSections":[{"refs":[{"id":"ref-for-defaultvalue"},{"id":"ref-for-defaultvalue\u2460"},{"id":"ref-for-defaultvalue\u2461"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-defaultvalue\u2462"}],"title":"5.5. Globals"}],"url":"#defaultvalue"}, |
| "defineownproperty-internal-method-of-an-exported-gc-object": {"dfnID":"defineownproperty-internal-method-of-an-exported-gc-object","dfnText":"[[DefineOwnProperty]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-defineownproperty-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#defineownproperty-internal-method-of-an-exported-gc-object"}, |
| "delete-internal-method-of-an-exported-gc-object": {"dfnID":"delete-internal-method-of-an-exported-gc-object","dfnText":"[[Delete]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-delete-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#delete-internal-method-of-an-exported-gc-object"}, |
| "dictdef-exceptionoptions": {"dfnID":"dictdef-exceptionoptions","dfnText":"ExceptionOptions","external":false,"refSections":[{"refs":[{"id":"ref-for-dictdef-exceptionoptions"}],"title":"5.9. Exceptions"}],"url":"#dictdef-exceptionoptions"}, |
| "dictdef-globaldescriptor": {"dfnID":"dictdef-globaldescriptor","dfnText":"GlobalDescriptor","external":false,"refSections":[{"refs":[{"id":"ref-for-dictdef-globaldescriptor"}],"title":"5.5. Globals"}],"url":"#dictdef-globaldescriptor"}, |
| "dictdef-memorydescriptor": {"dfnID":"dictdef-memorydescriptor","dfnText":"MemoryDescriptor","external":false,"refSections":[{"refs":[{"id":"ref-for-dictdef-memorydescriptor"}],"title":"5.3. Memories"}],"url":"#dictdef-memorydescriptor"}, |
| "dictdef-moduleexportdescriptor": {"dfnID":"dictdef-moduleexportdescriptor","dfnText":"ModuleExportDescriptor","external":false,"refSections":[{"refs":[{"id":"ref-for-dictdef-moduleexportdescriptor"}],"title":"5.1. Modules"}],"url":"#dictdef-moduleexportdescriptor"}, |
| "dictdef-moduleimportdescriptor": {"dfnID":"dictdef-moduleimportdescriptor","dfnText":"ModuleImportDescriptor","external":false,"refSections":[{"refs":[{"id":"ref-for-dictdef-moduleimportdescriptor"}],"title":"5.1. Modules"}],"url":"#dictdef-moduleimportdescriptor"}, |
| "dictdef-tabledescriptor": {"dfnID":"dictdef-tabledescriptor","dfnText":"TableDescriptor","external":false,"refSections":[{"refs":[{"id":"ref-for-dictdef-tabledescriptor"}],"title":"5.4. Tables"}],"url":"#dictdef-tabledescriptor"}, |
| "dictdef-tagtype": {"dfnID":"dictdef-tagtype","dfnText":"TagType","external":false,"refSections":[{"refs":[{"id":"ref-for-dictdef-tagtype"}],"title":"5.7.1. Tag types"}],"url":"#dictdef-tagtype"}, |
| "dictdef-webassemblycompileoptions": {"dfnID":"dictdef-webassemblycompileoptions","dfnText":"WebAssemblyCompileOptions","external":false,"refSections":[{"refs":[{"id":"ref-for-dictdef-webassemblycompileoptions"},{"id":"ref-for-dictdef-webassemblycompileoptions\u2460"},{"id":"ref-for-dictdef-webassemblycompileoptions\u2461"},{"id":"ref-for-dictdef-webassemblycompileoptions\u2462"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-dictdef-webassemblycompileoptions\u2463"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-dictdef-webassemblycompileoptions\u2464"},{"id":"ref-for-dictdef-webassemblycompileoptions\u2465"}],"title":"6. Builtins"}],"url":"#dictdef-webassemblycompileoptions"}, |
| "dictdef-webassemblyinstantiatedsource": {"dfnID":"dictdef-webassemblyinstantiatedsource","dfnText":"WebAssemblyInstantiatedSource","external":false,"refSections":[{"refs":[{"id":"ref-for-dictdef-webassemblyinstantiatedsource"},{"id":"ref-for-dictdef-webassemblyinstantiatedsource\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"#dictdef-webassemblyinstantiatedsource"}, |
| "dom-addresstype-i32": {"dfnID":"dom-addresstype-i32","dfnText":"\"i32\"","external":false,"refSections":[],"url":"#dom-addresstype-i32"}, |
| "dom-addresstype-i64": {"dfnID":"dom-addresstype-i64","dfnText":"\"i64\"","external":false,"refSections":[],"url":"#dom-addresstype-i64"}, |
| "dom-exception-exception": {"dfnID":"dom-exception-exception","dfnText":"new Exception(exceptionTag, payload, options)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-exception-exception"}],"title":"5.9. Exceptions"}],"url":"#dom-exception-exception"}, |
| "dom-exception-exception-exceptiontag-payload-options-exceptiontag": {"dfnID":"dom-exception-exception-exceptiontag-payload-options-exceptiontag","dfnText":"exceptionTag","external":false,"refSections":[],"url":"#dom-exception-exception-exceptiontag-payload-options-exceptiontag"}, |
| "dom-exception-exception-exceptiontag-payload-options-options": {"dfnID":"dom-exception-exception-exceptiontag-payload-options-options","dfnText":"options","external":false,"refSections":[],"url":"#dom-exception-exception-exceptiontag-payload-options-options"}, |
| "dom-exception-exception-exceptiontag-payload-options-payload": {"dfnID":"dom-exception-exception-exceptiontag-payload-options-payload","dfnText":"payload","external":false,"refSections":[],"url":"#dom-exception-exception-exceptiontag-payload-options-payload"}, |
| "dom-exception-getarg": {"dfnID":"dom-exception-getarg","dfnText":"getArg(index)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-exception-getarg"}],"title":"5.9. Exceptions"}],"url":"#dom-exception-getarg"}, |
| "dom-exception-getarg-index-index": {"dfnID":"dom-exception-getarg-index-index","dfnText":"index","external":false,"refSections":[],"url":"#dom-exception-getarg-index-index"}, |
| "dom-exception-is": {"dfnID":"dom-exception-is","dfnText":"is(exceptionTag)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-exception-is"}],"title":"5.9. Exceptions"}],"url":"#dom-exception-is"}, |
| "dom-exception-is-exceptiontag-exceptiontag": {"dfnID":"dom-exception-is-exceptiontag-exceptiontag","dfnText":"exceptionTag","external":false,"refSections":[],"url":"#dom-exception-is-exceptiontag-exceptiontag"}, |
| "dom-exception-stack": {"dfnID":"dom-exception-stack","dfnText":"stack","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-exception-stack"}],"title":"5.9. Exceptions"}],"url":"#dom-exception-stack"}, |
| "dom-exceptionoptions-tracestack": {"dfnID":"dom-exceptionoptions-tracestack","dfnText":"traceStack","external":false,"refSections":[],"url":"#dom-exceptionoptions-tracestack"}, |
| "dom-global-global": {"dfnID":"dom-global-global","dfnText":"Global(descriptor, v)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-global-global"}],"title":"5.5. Globals"}],"url":"#dom-global-global"}, |
| "dom-global-global-descriptor-v-descriptor": {"dfnID":"dom-global-global-descriptor-v-descriptor","dfnText":"descriptor","external":false,"refSections":[],"url":"#dom-global-global-descriptor-v-descriptor"}, |
| "dom-global-global-descriptor-v-v": {"dfnID":"dom-global-global-descriptor-v-v","dfnText":"v","external":false,"refSections":[],"url":"#dom-global-global-descriptor-v-v"}, |
| "dom-global-value": {"dfnID":"dom-global-value","dfnText":"value","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-global-value"}],"title":"5.5. Globals"}],"url":"#dom-global-value"}, |
| "dom-global-valueof": {"dfnID":"dom-global-valueof","dfnText":"valueOf()","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-global-valueof"}],"title":"5.5. Globals"}],"url":"#dom-global-valueof"}, |
| "dom-globaldescriptor-mutable": {"dfnID":"dom-globaldescriptor-mutable","dfnText":"mutable","external":false,"refSections":[],"url":"#dom-globaldescriptor-mutable"}, |
| "dom-globaldescriptor-value": {"dfnID":"dom-globaldescriptor-value","dfnText":"value","external":false,"refSections":[],"url":"#dom-globaldescriptor-value"}, |
| "dom-importexportkind-function": {"dfnID":"dom-importexportkind-function","dfnText":"\"function\"","external":false,"refSections":[],"url":"#dom-importexportkind-function"}, |
| "dom-importexportkind-global": {"dfnID":"dom-importexportkind-global","dfnText":"\"global\"","external":false,"refSections":[],"url":"#dom-importexportkind-global"}, |
| "dom-importexportkind-memory": {"dfnID":"dom-importexportkind-memory","dfnText":"\"memory\"","external":false,"refSections":[],"url":"#dom-importexportkind-memory"}, |
| "dom-importexportkind-table": {"dfnID":"dom-importexportkind-table","dfnText":"\"table\"","external":false,"refSections":[],"url":"#dom-importexportkind-table"}, |
| "dom-importexportkind-tag": {"dfnID":"dom-importexportkind-tag","dfnText":"\"tag\"","external":false,"refSections":[],"url":"#dom-importexportkind-tag"}, |
| "dom-instance-exports": {"dfnID":"dom-instance-exports","dfnText":"exports","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-instance-exports"}],"title":"5.2. Instances"}],"url":"#dom-instance-exports"}, |
| "dom-instance-instance": {"dfnID":"dom-instance-instance","dfnText":"Instance(module, importObject)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-instance-instance"}],"title":"5.2. Instances"}],"url":"#dom-instance-instance"}, |
| "dom-instance-instance-module-importobject-importobject": {"dfnID":"dom-instance-instance-module-importobject-importobject","dfnText":"importObject","external":false,"refSections":[],"url":"#dom-instance-instance-module-importobject-importobject"}, |
| "dom-instance-instance-module-importobject-module": {"dfnID":"dom-instance-instance-module-importobject-module","dfnText":"module","external":false,"refSections":[],"url":"#dom-instance-instance-module-importobject-module"}, |
| "dom-memory-buffer": {"dfnID":"dom-memory-buffer","dfnText":"buffer","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-memory-buffer"}],"title":"5.3. Memories"}],"url":"#dom-memory-buffer"}, |
| "dom-memory-grow": {"dfnID":"dom-memory-grow","dfnText":"grow(delta)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-memory-grow"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-dom-memory-grow\u2460"}],"title":"7.2. Out of Memory"}],"url":"#dom-memory-grow"}, |
| "dom-memory-grow-delta-delta": {"dfnID":"dom-memory-grow-delta-delta","dfnText":"delta","external":false,"refSections":[],"url":"#dom-memory-grow-delta-delta"}, |
| "dom-memory-memory": {"dfnID":"dom-memory-memory","dfnText":"Memory(descriptor)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-memory-memory"}],"title":"5.3. Memories"}],"url":"#dom-memory-memory"}, |
| "dom-memory-memory-descriptor-descriptor": {"dfnID":"dom-memory-memory-descriptor-descriptor","dfnText":"descriptor","external":false,"refSections":[],"url":"#dom-memory-memory-descriptor-descriptor"}, |
| "dom-memory-tofixedlengthbuffer": {"dfnID":"dom-memory-tofixedlengthbuffer","dfnText":"toFixedLengthBuffer()","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-memory-tofixedlengthbuffer"}],"title":"5.3. Memories"}],"url":"#dom-memory-tofixedlengthbuffer"}, |
| "dom-memory-toresizablebuffer": {"dfnID":"dom-memory-toresizablebuffer","dfnText":"toResizableBuffer()","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-memory-toresizablebuffer"}],"title":"5.3. Memories"}],"url":"#dom-memory-toresizablebuffer"}, |
| "dom-memorydescriptor-address": {"dfnID":"dom-memorydescriptor-address","dfnText":"address","external":false,"refSections":[],"url":"#dom-memorydescriptor-address"}, |
| "dom-memorydescriptor-initial": {"dfnID":"dom-memorydescriptor-initial","dfnText":"initial","external":false,"refSections":[],"url":"#dom-memorydescriptor-initial"}, |
| "dom-memorydescriptor-maximum": {"dfnID":"dom-memorydescriptor-maximum","dfnText":"maximum","external":false,"refSections":[],"url":"#dom-memorydescriptor-maximum"}, |
| "dom-module-customsections": {"dfnID":"dom-module-customsections","dfnText":"customSections(moduleObject, sectionName)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-module-customsections"}],"title":"5.1. Modules"}],"url":"#dom-module-customsections"}, |
| "dom-module-customsections-moduleobject-sectionname-moduleobject": {"dfnID":"dom-module-customsections-moduleobject-sectionname-moduleobject","dfnText":"moduleObject","external":false,"refSections":[],"url":"#dom-module-customsections-moduleobject-sectionname-moduleobject"}, |
| "dom-module-customsections-moduleobject-sectionname-sectionname": {"dfnID":"dom-module-customsections-moduleobject-sectionname-sectionname","dfnText":"sectionName","external":false,"refSections":[],"url":"#dom-module-customsections-moduleobject-sectionname-sectionname"}, |
| "dom-module-exports": {"dfnID":"dom-module-exports","dfnText":"exports(moduleObject)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-module-exports"}],"title":"5.1. Modules"}],"url":"#dom-module-exports"}, |
| "dom-module-exports-moduleobject-moduleobject": {"dfnID":"dom-module-exports-moduleobject-moduleobject","dfnText":"moduleObject","external":false,"refSections":[],"url":"#dom-module-exports-moduleobject-moduleobject"}, |
| "dom-module-imports": {"dfnID":"dom-module-imports","dfnText":"imports(moduleObject)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-module-imports"}],"title":"5.1. Modules"}],"url":"#dom-module-imports"}, |
| "dom-module-imports-moduleobject-moduleobject": {"dfnID":"dom-module-imports-moduleobject-moduleobject","dfnText":"moduleObject","external":false,"refSections":[],"url":"#dom-module-imports-moduleobject-moduleobject"}, |
| "dom-module-module": {"dfnID":"dom-module-module","dfnText":"Module(bytes, options)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-module-module"}],"title":"5.1. Modules"}],"url":"#dom-module-module"}, |
| "dom-module-module-bytes-options-bytes": {"dfnID":"dom-module-module-bytes-options-bytes","dfnText":"bytes","external":false,"refSections":[],"url":"#dom-module-module-bytes-options-bytes"}, |
| "dom-module-module-bytes-options-options": {"dfnID":"dom-module-module-bytes-options-options","dfnText":"options","external":false,"refSections":[],"url":"#dom-module-module-bytes-options-options"}, |
| "dom-moduleexportdescriptor-kind": {"dfnID":"dom-moduleexportdescriptor-kind","dfnText":"kind","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-moduleexportdescriptor-kind"}],"title":"5.1. Modules"}],"url":"#dom-moduleexportdescriptor-kind"}, |
| "dom-moduleexportdescriptor-name": {"dfnID":"dom-moduleexportdescriptor-name","dfnText":"name","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-moduleexportdescriptor-name"}],"title":"5.1. Modules"}],"url":"#dom-moduleexportdescriptor-name"}, |
| "dom-moduleimportdescriptor-kind": {"dfnID":"dom-moduleimportdescriptor-kind","dfnText":"kind","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-moduleimportdescriptor-kind"}],"title":"5.1. Modules"}],"url":"#dom-moduleimportdescriptor-kind"}, |
| "dom-moduleimportdescriptor-module": {"dfnID":"dom-moduleimportdescriptor-module","dfnText":"module","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-moduleimportdescriptor-module"}],"title":"5.1. Modules"}],"url":"#dom-moduleimportdescriptor-module"}, |
| "dom-moduleimportdescriptor-name": {"dfnID":"dom-moduleimportdescriptor-name","dfnText":"name","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-moduleimportdescriptor-name"}],"title":"5.1. Modules"}],"url":"#dom-moduleimportdescriptor-name"}, |
| "dom-table-get": {"dfnID":"dom-table-get","dfnText":"get(index)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-table-get"}],"title":"5.4. Tables"}],"url":"#dom-table-get"}, |
| "dom-table-get-index-index": {"dfnID":"dom-table-get-index-index","dfnText":"index","external":false,"refSections":[],"url":"#dom-table-get-index-index"}, |
| "dom-table-grow": {"dfnID":"dom-table-grow","dfnText":"grow(delta, value)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-table-grow"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-dom-table-grow\u2460"}],"title":"7.2. Out of Memory"}],"url":"#dom-table-grow"}, |
| "dom-table-grow-delta-value-delta": {"dfnID":"dom-table-grow-delta-value-delta","dfnText":"delta","external":false,"refSections":[],"url":"#dom-table-grow-delta-value-delta"}, |
| "dom-table-grow-delta-value-value": {"dfnID":"dom-table-grow-delta-value-value","dfnText":"value","external":false,"refSections":[],"url":"#dom-table-grow-delta-value-value"}, |
| "dom-table-length": {"dfnID":"dom-table-length","dfnText":"length","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-table-length"}],"title":"5.4. Tables"}],"url":"#dom-table-length"}, |
| "dom-table-set": {"dfnID":"dom-table-set","dfnText":"set(index, value)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-table-set"}],"title":"5.4. Tables"}],"url":"#dom-table-set"}, |
| "dom-table-set-index-value-index": {"dfnID":"dom-table-set-index-value-index","dfnText":"index","external":false,"refSections":[],"url":"#dom-table-set-index-value-index"}, |
| "dom-table-set-index-value-value": {"dfnID":"dom-table-set-index-value-value","dfnText":"value","external":false,"refSections":[],"url":"#dom-table-set-index-value-value"}, |
| "dom-table-table": {"dfnID":"dom-table-table","dfnText":"Table(descriptor, value)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-table-table"}],"title":"5.4. Tables"}],"url":"#dom-table-table"}, |
| "dom-table-table-descriptor-value-descriptor": {"dfnID":"dom-table-table-descriptor-value-descriptor","dfnText":"descriptor","external":false,"refSections":[],"url":"#dom-table-table-descriptor-value-descriptor"}, |
| "dom-table-table-descriptor-value-value": {"dfnID":"dom-table-table-descriptor-value-value","dfnText":"value","external":false,"refSections":[],"url":"#dom-table-table-descriptor-value-value"}, |
| "dom-tabledescriptor-address": {"dfnID":"dom-tabledescriptor-address","dfnText":"address","external":false,"refSections":[],"url":"#dom-tabledescriptor-address"}, |
| "dom-tabledescriptor-element": {"dfnID":"dom-tabledescriptor-element","dfnText":"element","external":false,"refSections":[],"url":"#dom-tabledescriptor-element"}, |
| "dom-tabledescriptor-initial": {"dfnID":"dom-tabledescriptor-initial","dfnText":"initial","external":false,"refSections":[],"url":"#dom-tabledescriptor-initial"}, |
| "dom-tabledescriptor-maximum": {"dfnID":"dom-tabledescriptor-maximum","dfnText":"maximum","external":false,"refSections":[],"url":"#dom-tabledescriptor-maximum"}, |
| "dom-tablekind-anyfunc": {"dfnID":"dom-tablekind-anyfunc","dfnText":"\"anyfunc\"","external":false,"refSections":[],"url":"#dom-tablekind-anyfunc"}, |
| "dom-tablekind-externref": {"dfnID":"dom-tablekind-externref","dfnText":"\"externref\"","external":false,"refSections":[],"url":"#dom-tablekind-externref"}, |
| "dom-tag-tag": {"dfnID":"dom-tag-tag","dfnText":"new Tag(type)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-tag-tag"}],"title":"5.7.1. Tag types"}],"url":"#dom-tag-tag"}, |
| "dom-tag-tag-type-type": {"dfnID":"dom-tag-tag-type-type","dfnText":"type","external":false,"refSections":[],"url":"#dom-tag-tag-type-type"}, |
| "dom-tagtype-parameters": {"dfnID":"dom-tagtype-parameters","dfnText":"parameters","external":false,"refSections":[],"url":"#dom-tagtype-parameters"}, |
| "dom-valuetype-anyfunc": {"dfnID":"dom-valuetype-anyfunc","dfnText":"\"anyfunc\"","external":false,"refSections":[],"url":"#dom-valuetype-anyfunc"}, |
| "dom-valuetype-externref": {"dfnID":"dom-valuetype-externref","dfnText":"\"externref\"","external":false,"refSections":[],"url":"#dom-valuetype-externref"}, |
| "dom-valuetype-f32": {"dfnID":"dom-valuetype-f32","dfnText":"\"f32\"","external":false,"refSections":[],"url":"#dom-valuetype-f32"}, |
| "dom-valuetype-f64": {"dfnID":"dom-valuetype-f64","dfnText":"\"f64\"","external":false,"refSections":[],"url":"#dom-valuetype-f64"}, |
| "dom-valuetype-i32": {"dfnID":"dom-valuetype-i32","dfnText":"\"i32\"","external":false,"refSections":[],"url":"#dom-valuetype-i32"}, |
| "dom-valuetype-i64": {"dfnID":"dom-valuetype-i64","dfnText":"\"i64\"","external":false,"refSections":[],"url":"#dom-valuetype-i64"}, |
| "dom-valuetype-v128": {"dfnID":"dom-valuetype-v128","dfnText":"\"v128\"","external":false,"refSections":[],"url":"#dom-valuetype-v128"}, |
| "dom-webassembly-compile": {"dfnID":"dom-webassembly-compile","dfnText":"compile(bytes, options)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-webassembly-compile"}],"title":"5. The WebAssembly Namespace"}],"url":"#dom-webassembly-compile"}, |
| "dom-webassembly-compile-bytes-options-bytes": {"dfnID":"dom-webassembly-compile-bytes-options-bytes","dfnText":"bytes","external":false,"refSections":[],"url":"#dom-webassembly-compile-bytes-options-bytes"}, |
| "dom-webassembly-compile-bytes-options-options": {"dfnID":"dom-webassembly-compile-bytes-options-options","dfnText":"options","external":false,"refSections":[],"url":"#dom-webassembly-compile-bytes-options-options"}, |
| "dom-webassembly-instantiate": {"dfnID":"dom-webassembly-instantiate","dfnText":"instantiate(bytes, importObject, options)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-webassembly-instantiate"}],"title":"5. The WebAssembly Namespace"}],"url":"#dom-webassembly-instantiate"}, |
| "dom-webassembly-instantiate-bytes-importobject-options-bytes": {"dfnID":"dom-webassembly-instantiate-bytes-importobject-options-bytes","dfnText":"bytes","external":false,"refSections":[],"url":"#dom-webassembly-instantiate-bytes-importobject-options-bytes"}, |
| "dom-webassembly-instantiate-bytes-importobject-options-importobject": {"dfnID":"dom-webassembly-instantiate-bytes-importobject-options-importobject","dfnText":"importObject","external":false,"refSections":[],"url":"#dom-webassembly-instantiate-bytes-importobject-options-importobject"}, |
| "dom-webassembly-instantiate-bytes-importobject-options-options": {"dfnID":"dom-webassembly-instantiate-bytes-importobject-options-options","dfnText":"options","external":false,"refSections":[],"url":"#dom-webassembly-instantiate-bytes-importobject-options-options"}, |
| "dom-webassembly-instantiate-moduleobject-importobject": {"dfnID":"dom-webassembly-instantiate-moduleobject-importobject","dfnText":"instantiate(moduleObject, importObject)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-webassembly-instantiate-moduleobject-importobject"}],"title":"5. The WebAssembly Namespace"}],"url":"#dom-webassembly-instantiate-moduleobject-importobject"}, |
| "dom-webassembly-instantiate-moduleobject-importobject-importobject": {"dfnID":"dom-webassembly-instantiate-moduleobject-importobject-importobject","dfnText":"importObject","external":false,"refSections":[],"url":"#dom-webassembly-instantiate-moduleobject-importobject-importobject"}, |
| "dom-webassembly-instantiate-moduleobject-importobject-moduleobject": {"dfnID":"dom-webassembly-instantiate-moduleobject-importobject-moduleobject","dfnText":"moduleObject","external":false,"refSections":[],"url":"#dom-webassembly-instantiate-moduleobject-importobject-moduleobject"}, |
| "dom-webassembly-jstag": {"dfnID":"dom-webassembly-jstag","dfnText":"JSTag","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-webassembly-jstag"}],"title":"5. The WebAssembly Namespace"}],"url":"#dom-webassembly-jstag"}, |
| "dom-webassembly-validate": {"dfnID":"dom-webassembly-validate","dfnText":"validate(bytes, options)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-webassembly-validate"}],"title":"5. The WebAssembly Namespace"}],"url":"#dom-webassembly-validate"}, |
| "dom-webassembly-validate-bytes-options-bytes": {"dfnID":"dom-webassembly-validate-bytes-options-bytes","dfnText":"bytes","external":false,"refSections":[],"url":"#dom-webassembly-validate-bytes-options-bytes"}, |
| "dom-webassembly-validate-bytes-options-options": {"dfnID":"dom-webassembly-validate-bytes-options-options","dfnText":"options","external":false,"refSections":[],"url":"#dom-webassembly-validate-bytes-options-options"}, |
| "dom-webassemblycompileoptions-builtins": {"dfnID":"dom-webassemblycompileoptions-builtins","dfnText":"builtins","external":false,"refSections":[],"url":"#dom-webassemblycompileoptions-builtins"}, |
| "dom-webassemblycompileoptions-importedstringconstants": {"dfnID":"dom-webassemblycompileoptions-importedstringconstants","dfnText":"importedStringConstants","external":false,"refSections":[],"url":"#dom-webassemblycompileoptions-importedstringconstants"}, |
| "dom-webassemblyinstantiatedsource-instance": {"dfnID":"dom-webassemblyinstantiatedsource-instance","dfnText":"instance","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-webassemblyinstantiatedsource-instance"}],"title":"5. The WebAssembly Namespace"}],"url":"#dom-webassemblyinstantiatedsource-instance"}, |
| "dom-webassemblyinstantiatedsource-module": {"dfnID":"dom-webassemblyinstantiatedsource-module","dfnText":"module","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-webassemblyinstantiatedsource-module"}],"title":"5. The WebAssembly Namespace"}],"url":"#dom-webassemblyinstantiatedsource-module"}, |
| "e03ea6cc": {"dfnID":"e03ea6cc","dfnText":"exnref","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-reftype"},{"id":"ref-for-syntax-reftype\u2460"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-syntax-reftype\u2461"},{"id":"ref-for-syntax-reftype\u2462"},{"id":"ref-for-syntax-reftype\u2463"},{"id":"ref-for-syntax-reftype\u2464"},{"id":"ref-for-syntax-reftype\u2465"},{"id":"ref-for-syntax-reftype\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-syntax-reftype\u2467"},{"id":"ref-for-syntax-reftype\u2468"},{"id":"ref-for-syntax-reftype\u2460\u24ea"},{"id":"ref-for-syntax-reftype\u2460\u2460"},{"id":"ref-for-syntax-reftype\u2460\u2461"},{"id":"ref-for-syntax-reftype\u2460\u2462"},{"id":"ref-for-syntax-reftype\u2460\u2463"},{"id":"ref-for-syntax-reftype\u2460\u2464"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-syntax-reftype\u2460\u2465"},{"id":"ref-for-syntax-reftype\u2460\u2466"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-syntax-reftype\u2460\u2467"},{"id":"ref-for-syntax-reftype\u2460\u2468"}],"title":"5.9.1. JavaScript exceptions"},{"refs":[{"id":"ref-for-syntax-reftype\u2461\u24ea"}],"title":"Reference Types"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype"}, |
| "e07b3d97": {"dfnID":"e07b3d97","dfnText":"valid memtype","external":true,"refSections":[{"refs":[{"id":"ref-for-valid-memtype"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/valid/types.html#valid-memtype"}, |
| "e18130bf": {"dfnID":"e18130bf","dfnText":"v128.const","external":true,"refSections":[{"refs":[{"id":"ref-for-values"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-values\u2460"},{"id":"ref-for-values\u2461"},{"id":"ref-for-values\u2462"},{"id":"ref-for-values\u2463"},{"id":"ref-for-values\u2464"},{"id":"ref-for-values\u2465"},{"id":"ref-for-values\u2466"},{"id":"ref-for-values\u2467"},{"id":"ref-for-values\u2468"},{"id":"ref-for-values\u2460\u24ea"},{"id":"ref-for-values\u2460\u2460"},{"id":"ref-for-values\u2460\u2461"},{"id":"ref-for-values\u2460\u2462"},{"id":"ref-for-values\u2460\u2463"},{"id":"ref-for-values\u2460\u2464"},{"id":"ref-for-values\u2460\u2465"},{"id":"ref-for-values\u2460\u2466"},{"id":"ref-for-values\u2460\u2467"},{"id":"ref-for-values\u2460\u2468"},{"id":"ref-for-values\u2461\u24ea"},{"id":"ref-for-values\u2461\u2460"},{"id":"ref-for-values\u2461\u2461"},{"id":"ref-for-values\u2461\u2462"},{"id":"ref-for-values\u2461\u2463"},{"id":"ref-for-values\u2461\u2464"},{"id":"ref-for-values\u2461\u2465"},{"id":"ref-for-values\u2461\u2466"},{"id":"ref-for-values\u2461\u2467"},{"id":"ref-for-values\u2461\u2468"},{"id":"ref-for-values\u2462\u24ea"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "e2fb14e5": {"dfnID":"e2fb14e5","dfnText":"NumericToRawBytes","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-numerictorawbytes"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.es/ecma262/multipage/structured-data.html#sec-numerictorawbytes"}, |
| "e4286588": {"dfnID":"e4286588","dfnText":"func_invoke","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-func-invoke"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-invoke"}, |
| "e76d80be": {"dfnID":"e76d80be","dfnText":"reftype","external":true,"refSections":[{"refs":[{"id":"ref-for-match-reftype"},{"id":"ref-for-match-reftype\u2460"},{"id":"ref-for-match-reftype\u2461"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/valid/matching.html#match-reftype"}, |
| "e8f0aed3": {"dfnID":"e8f0aed3","dfnText":"Built-in Function Objects","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-built-in-function-objects"},{"id":"ref-for-sec-built-in-function-objects\u2460"}],"title":"5.6. Exported Functions"}],"url":"https://tc39.github.io/ecma262/#sec-built-in-function-objects"}, |
| "e97a9688": {"dfnID":"e97a9688","dfnText":"unsigned long","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-unsigned-long\u2461"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#idl-unsigned-long"}, |
| "eb54bcbb": {"dfnID":"eb54bcbb","dfnText":"u64","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-int"},{"id":"ref-for-syntax-int\u2460"},{"id":"ref-for-syntax-int\u2461"},{"id":"ref-for-syntax-int\u2462"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-int"}, |
| "ebb4ace3": {"dfnID":"ebb4ace3","dfnText":"?","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2463"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2465"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2466"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2467"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u24ea"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2460"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2462"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2463"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2465"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2466"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2467"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2460\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u24ea"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2460"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2463"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2465"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2466"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2467"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2461\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u24ea"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2460"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2463"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2465"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2466"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2467"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2462\u2468"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u24ea"}],"title":"5.10. Error Objects"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2460"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2461"}],"title":"6. Builtins"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2463"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2464"}],"title":"6.1.2. cast"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2465"}],"title":"6.1.5. intoCharCodeArray"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2466"}],"title":"6.1.7. fromCodePoint"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2467"}],"title":"6.1.8. charCodeAt"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2463\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u24ea"}],"title":"6.1.9. codePointAt"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2460"}],"title":"6.1.10. length"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2461"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2462"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2463"}],"title":"6.1.11. concat"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2464"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2465"}],"title":"6.1.12. substring"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2466"}],"title":"6.1.13. equals"},{"refs":[{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2467"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2464\u2468"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2465\u24ea"},{"id":"ref-for-sec-returnifabrupt-shorthands\u2465\u2460"}],"title":"6.1.14. compare"}],"url":"https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands"}, |
| "ebbbef34": {"dfnID":"ebbbef34","dfnText":"OrdinaryObjectCreate","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-ordinaryobjectcreate"},{"id":"ref-for-sec-ordinaryobjectcreate\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-sec-ordinaryobjectcreate\u2461"}],"title":"6. Builtins"}],"url":"https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-ordinaryobjectcreate"}, |
| "ec2020b1": {"dfnID":"ec2020b1","dfnText":"table_alloc","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-table-alloc"}],"title":"5.4. Tables"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-alloc"}, |
| "eca66c99": {"dfnID":"eca66c99","dfnText":"Data Block","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-data-blocks"}],"title":"4.1. Interaction of the WebAssembly Store with JavaScript"},{"refs":[{"id":"ref-for-sec-data-blocks\u2460"},{"id":"ref-for-sec-data-blocks\u2461"},{"id":"ref-for-sec-data-blocks\u2462"},{"id":"ref-for-sec-data-blocks\u2463"}],"title":"5.3. Memories"}],"url":"https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-data-blocks"}, |
| "ef0b8e0c": {"dfnID":"ef0b8e0c","dfnText":"is not an Object","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-object-type"},{"id":"ref-for-sec-object-type\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"https://tc39.github.io/ecma262/#sec-object-type"}, |
| "ef3c2587": {"dfnID":"ef3c2587","dfnText":"externref","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-reftype"},{"id":"ref-for-syntax-reftype\u2460"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-syntax-reftype\u2461"},{"id":"ref-for-syntax-reftype\u2462"},{"id":"ref-for-syntax-reftype\u2463"},{"id":"ref-for-syntax-reftype\u2464"},{"id":"ref-for-syntax-reftype\u2465"},{"id":"ref-for-syntax-reftype\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-syntax-reftype\u2467"},{"id":"ref-for-syntax-reftype\u2468"},{"id":"ref-for-syntax-reftype\u2460\u24ea"},{"id":"ref-for-syntax-reftype\u2460\u2460"},{"id":"ref-for-syntax-reftype\u2460\u2461"},{"id":"ref-for-syntax-reftype\u2460\u2462"},{"id":"ref-for-syntax-reftype\u2460\u2463"},{"id":"ref-for-syntax-reftype\u2460\u2464"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-syntax-reftype\u2460\u2465"},{"id":"ref-for-syntax-reftype\u2460\u2466"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-syntax-reftype\u2460\u2467"},{"id":"ref-for-syntax-reftype\u2460\u2468"}],"title":"5.9.1. JavaScript exceptions"},{"refs":[{"id":"ref-for-syntax-reftype\u2461\u24ea"}],"title":"Reference Types"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype"}, |
| "efd1ec5d": {"dfnID":"efd1ec5d","dfnText":"object","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-object"},{"id":"ref-for-idl-object\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-idl-object\u2461"},{"id":"ref-for-idl-object\u2462"}],"title":"5.2. Instances"}],"url":"https://webidl.spec.whatwg.org/#idl-object"}, |
| "efe8653e": {"dfnID":"efe8653e","dfnText":"iterate (for map)","external":true,"refSections":[{"refs":[{"id":"ref-for-map-iterate"}],"title":"5.3. Memories"}],"url":"https://infra.spec.whatwg.org/#map-iterate"}, |
| "enumdef-addresstype": {"dfnID":"enumdef-addresstype","dfnText":"AddressType","external":false,"refSections":[{"refs":[{"id":"ref-for-enumdef-addresstype"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-enumdef-addresstype\u2460"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-enumdef-addresstype\u2461"},{"id":"ref-for-enumdef-addresstype\u2462"},{"id":"ref-for-enumdef-addresstype\u2463"}],"title":"5.6. Exported Functions"}],"url":"#enumdef-addresstype"}, |
| "enumdef-importexportkind": {"dfnID":"enumdef-importexportkind","dfnText":"ImportExportKind","external":false,"refSections":[{"refs":[{"id":"ref-for-enumdef-importexportkind"},{"id":"ref-for-enumdef-importexportkind\u2460"}],"title":"5.1. Modules"}],"url":"#enumdef-importexportkind"}, |
| "enumdef-tablekind": {"dfnID":"enumdef-tablekind","dfnText":"TableKind","external":false,"refSections":[{"refs":[{"id":"ref-for-enumdef-tablekind"}],"title":"5.4. Tables"}],"url":"#enumdef-tablekind"}, |
| "enumdef-valuetype": {"dfnID":"enumdef-valuetype","dfnText":"ValueType","external":false,"refSections":[{"refs":[{"id":"ref-for-enumdef-valuetype"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-enumdef-valuetype\u2460"}],"title":"5.7.1. Tag types"}],"url":"#enumdef-valuetype"}, |
| "exception": {"dfnID":"exception","dfnText":"Exception","external":false,"refSections":[{"refs":[{"id":"ref-for-exception"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-exception\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-exception\u2461"},{"id":"ref-for-exception\u2462"}],"title":"5.9. Exceptions"}],"url":"#exception"}, |
| "exception-object-cache": {"dfnID":"exception-object-cache","dfnText":"Exception object cache","external":false,"refSections":[{"refs":[{"id":"ref-for-exception-object-cache"},{"id":"ref-for-exception-object-cache\u2460"}],"title":"5.9. Exceptions"}],"url":"#exception-object-cache"}, |
| "exceptiondef-compileerror": {"dfnID":"exceptiondef-compileerror","dfnText":"CompileError","external":false,"refSections":[{"refs":[{"id":"ref-for-exceptiondef-compileerror"},{"id":"ref-for-exceptiondef-compileerror\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-exceptiondef-compileerror\u2461"},{"id":"ref-for-exceptiondef-compileerror\u2462"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-exceptiondef-compileerror\u2463"}],"title":"5.10. Error Objects"},{"refs":[{"id":"ref-for-exceptiondef-compileerror\u2464"}],"title":"8. Implementation-defined Limits"}],"url":"#exceptiondef-compileerror"}, |
| "exceptiondef-linkerror": {"dfnID":"exceptiondef-linkerror","dfnText":"LinkError","external":false,"refSections":[{"refs":[{"id":"ref-for-exceptiondef-linkerror"},{"id":"ref-for-exceptiondef-linkerror\u2460"},{"id":"ref-for-exceptiondef-linkerror\u2461"},{"id":"ref-for-exceptiondef-linkerror\u2462"},{"id":"ref-for-exceptiondef-linkerror\u2463"},{"id":"ref-for-exceptiondef-linkerror\u2464"},{"id":"ref-for-exceptiondef-linkerror\u2465"},{"id":"ref-for-exceptiondef-linkerror\u2466"},{"id":"ref-for-exceptiondef-linkerror\u2467"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-exceptiondef-linkerror\u2468"}],"title":"5.10. Error Objects"}],"url":"#exceptiondef-linkerror"}, |
| "exceptiondef-runtimeerror": {"dfnID":"exceptiondef-runtimeerror","dfnText":"RuntimeError","external":false,"refSections":[{"refs":[{"id":"ref-for-exceptiondef-runtimeerror"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2461"}],"title":"5.10. Error Objects"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2462"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2463"},{"id":"ref-for-exceptiondef-runtimeerror\u2464"}],"title":"6.1.4. fromCharCodeArray"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2465"},{"id":"ref-for-exceptiondef-runtimeerror\u2466"}],"title":"6.1.5. intoCharCodeArray"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2467"}],"title":"6.1.7. fromCodePoint"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2468"}],"title":"6.1.8. charCodeAt"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2460\u24ea"}],"title":"6.1.9. codePointAt"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2460\u2460"},{"id":"ref-for-exceptiondef-runtimeerror\u2460\u2461"}],"title":"6.1.13. equals"},{"refs":[{"id":"ref-for-exceptiondef-runtimeerror\u2460\u2462"}],"title":"8. Implementation-defined Limits"}],"url":"#exceptiondef-runtimeerror"}, |
| "exported-function": {"dfnID":"exported-function","dfnText":"Exported Function","external":false,"refSections":[{"refs":[{"id":"ref-for-exported-function"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-exported-function\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-exported-function\u2461"}],"title":"5.6. Exported Functions"}],"url":"#exported-function"}, |
| "exported-function-cache": {"dfnID":"exported-function-cache","dfnText":"Exported Function cache","external":false,"refSections":[{"refs":[{"id":"ref-for-exported-function-cache"}],"title":"5.6. Exported Functions"}],"url":"#exported-function-cache"}, |
| "exported-gc-object": {"dfnID":"exported-gc-object","dfnText":"Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-exported-gc-object"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-exported-gc-object\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-exported-gc-object\u2461"},{"id":"ref-for-exported-gc-object\u2462"},{"id":"ref-for-exported-gc-object\u2463"},{"id":"ref-for-exported-gc-object\u2464"}],"title":"5.8. Garbage Collected Objects"}],"url":"#exported-gc-object"}, |
| "exported-gc-object-cache": {"dfnID":"exported-gc-object-cache","dfnText":"Exported GC Object cache","external":false,"refSections":[{"refs":[{"id":"ref-for-exported-gc-object-cache"}],"title":"5.8. Garbage Collected Objects"}],"url":"#exported-gc-object-cache"}, |
| "f02cd417": {"dfnID":"f02cd417","dfnText":"iterate (for list)","external":true,"refSections":[{"refs":[{"id":"ref-for-list-iterate"},{"id":"ref-for-list-iterate\u2460"},{"id":"ref-for-list-iterate\u2461"},{"id":"ref-for-list-iterate\u2462"},{"id":"ref-for-list-iterate\u2463"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-list-iterate\u2464"},{"id":"ref-for-list-iterate\u2465"},{"id":"ref-for-list-iterate\u2466"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-list-iterate\u2467"},{"id":"ref-for-list-iterate\u2468"},{"id":"ref-for-list-iterate\u2460\u24ea"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-list-iterate\u2460\u2460"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-list-iterate\u2460\u2461"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-list-iterate\u2460\u2462"}],"title":"5.10. Error Objects"},{"refs":[{"id":"ref-for-list-iterate\u2460\u2463"},{"id":"ref-for-list-iterate\u2460\u2464"},{"id":"ref-for-list-iterate\u2460\u2465"}],"title":"6. Builtins"}],"url":"https://infra.spec.whatwg.org/#list-iterate"}, |
| "f0590fd3": {"dfnID":"f0590fd3","dfnText":"String.fromCharCode","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-string.fromcharcode"}],"title":"6.1.1. Abstract operations"}],"url":"https://tc39.github.io/ecma262/#sec-string.fromcharcode"}, |
| "f06ddd8a": {"dfnID":"f06ddd8a","dfnText":"memaddrs","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-moduleinst"},{"id":"ref-for-syntax-moduleinst\u2460"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-moduleinst"}, |
| "f0c8810c": {"dfnID":"f0c8810c","dfnText":"import","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-import"}],"title":"9. Security and Privacy Considerations"}],"url":"https://webassembly.github.io/spec/core/syntax/modules.html#syntax-import"}, |
| "f14ed351": {"dfnID":"f14ed351","dfnText":"upon rejection","external":true,"refSections":[{"refs":[{"id":"ref-for-upon-rejection"},{"id":"ref-for-upon-rejection\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webidl.spec.whatwg.org/#upon-rejection"}, |
| "f17862f0": {"dfnID":"f17862f0","dfnText":"ArrayBuffer","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-arraybuffer-objects"},{"id":"ref-for-sec-arraybuffer-objects\u2460"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-sec-arraybuffer-objects\u2461"},{"id":"ref-for-sec-arraybuffer-objects\u2462"},{"id":"ref-for-sec-arraybuffer-objects\u2463"},{"id":"ref-for-sec-arraybuffer-objects\u2464"},{"id":"ref-for-sec-arraybuffer-objects\u2465"},{"id":"ref-for-sec-arraybuffer-objects\u2466"},{"id":"ref-for-sec-arraybuffer-objects\u2467"},{"id":"ref-for-sec-arraybuffer-objects\u2468"}],"title":"5.3. Memories"}],"url":"https://tc39.github.io/ecma262/#sec-arraybuffer-objects"}, |
| "f256859a": {"dfnID":"f256859a","dfnText":"UTF-8 decode without BOM or fail","external":true,"refSections":[{"refs":[{"id":"ref-for-utf-8-decode-without-bom-or-fail"}],"title":"5.1. Modules"}],"url":"https://encoding.spec.whatwg.org/#utf-8-decode-without-bom-or-fail"}, |
| "f2ca6ec5": {"dfnID":"f2ca6ec5","dfnText":"IsStrictlyEqual","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-isstrictlyequal"}],"title":"6.1.13. equals"},{"refs":[{"id":"ref-for-sec-isstrictlyequal\u2460"}],"title":"6.1.14. compare"}],"url":"https://tc39.github.io/ecma262/#sec-isstrictlyequal"}, |
| "f3597ae0": {"dfnID":"f3597ae0","dfnText":"exn_alloc","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-exn-alloc"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-embed-exn-alloc\u2460"}],"title":"5.9. Exceptions"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-alloc"}, |
| "f3aaa883": {"dfnID":"f3aaa883","dfnText":"module_validate","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-module-validate"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-validate"}, |
| "f56c24ad": {"dfnID":"f56c24ad","dfnText":"imports","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-module"},{"id":"ref-for-syntax-module\u2460"}],"title":"5. The WebAssembly Namespace"}],"url":"https://webassembly.github.io/spec/core/syntax/modules.html#syntax-module"}, |
| "f937b7b6": {"dfnID":"f937b7b6","dfnText":"continue","external":true,"refSections":[{"refs":[{"id":"ref-for-iteration-continue"},{"id":"ref-for-iteration-continue\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-iteration-continue\u2461"},{"id":"ref-for-iteration-continue\u2462"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-iteration-continue\u2463"}],"title":"6. Builtins"}],"url":"https://infra.spec.whatwg.org/#iteration-continue"}, |
| "f98ab0c2": {"dfnID":"f98ab0c2","dfnText":"LegacyNamespace","external":true,"refSections":[{"refs":[{"id":"ref-for-LegacyNamespace"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-LegacyNamespace\u2460"}],"title":"5.2. Instances"},{"refs":[{"id":"ref-for-LegacyNamespace\u2461"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-LegacyNamespace\u2462"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-LegacyNamespace\u2463"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-LegacyNamespace\u2464"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-LegacyNamespace\u2465"}],"title":"5.9. Exceptions"}],"url":"https://webidl.spec.whatwg.org/#LegacyNamespace"}, |
| "f9dbc1a8": {"dfnID":"f9dbc1a8","dfnText":"NativeError Object Structure","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-nativeerror-object-structure"}],"title":"5.10. Error Objects"}],"url":"https://tc39.github.io/ecma262/#sec-nativeerror-object-structure"}, |
| "fa5c4242": {"dfnID":"fa5c4242","dfnText":"agent cluster","external":true,"refSections":[{"refs":[{"id":"ref-for-sec-agent-clusters"}],"title":"4.1. Interaction of the WebAssembly Store with JavaScript"}],"url":"https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-agent-clusters"}, |
| "fafc7354": {"dfnID":"fafc7354","dfnText":"struct address","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-structaddr"}],"title":"4.2. WebAssembly JS Object Caches"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-structaddr"}, |
| "fbc61d3f": {"dfnID":"fbc61d3f","dfnText":"memory address","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-memaddr"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-syntax-memaddr\u2460"},{"id":"ref-for-syntax-memaddr\u2461"},{"id":"ref-for-syntax-memaddr\u2462"},{"id":"ref-for-syntax-memaddr\u2463"},{"id":"ref-for-syntax-memaddr\u2464"},{"id":"ref-for-syntax-memaddr\u2465"}],"title":"5.3. Memories"}],"url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr"}, |
| "fc0ee513": {"dfnID":"fc0ee513","dfnText":"global_alloc","external":true,"refSections":[{"refs":[{"id":"ref-for-embed-global-alloc"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-embed-global-alloc\u2460"}],"title":"5.5. Globals"}],"url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-alloc"}, |
| "fcf11545": {"dfnID":"fcf11545","dfnText":"exception","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-tagtype"},{"id":"ref-for-syntax-tagtype\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-syntax-tagtype\u2461"}],"title":"5.9.1. JavaScript exceptions"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-tagtype"}, |
| "fd73fa9f": {"dfnID":"fd73fa9f","dfnText":"signed_32","external":true,"refSections":[{"refs":[{"id":"ref-for-aux-signed"},{"id":"ref-for-aux-signed\u2460"},{"id":"ref-for-aux-signed\u2461"},{"id":"ref-for-aux-signed\u2462"},{"id":"ref-for-aux-signed\u2463"},{"id":"ref-for-aux-signed\u2464"}],"title":"5.6. Exported Functions"}],"url":"https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed"}, |
| "ffa3e8fc": {"dfnID":"ffa3e8fc","dfnText":"f64","external":true,"refSections":[{"refs":[{"id":"ref-for-syntax-numtype"},{"id":"ref-for-syntax-numtype\u2460"},{"id":"ref-for-syntax-numtype\u2461"},{"id":"ref-for-syntax-numtype\u2462"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-syntax-numtype\u2463"},{"id":"ref-for-syntax-numtype\u2464"},{"id":"ref-for-syntax-numtype\u2465"},{"id":"ref-for-syntax-numtype\u2466"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-syntax-numtype\u2467"},{"id":"ref-for-syntax-numtype\u2468"},{"id":"ref-for-syntax-numtype\u2460\u24ea"},{"id":"ref-for-syntax-numtype\u2460\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-syntax-numtype\u2460\u2461"},{"id":"ref-for-syntax-numtype\u2460\u2462"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-syntax-numtype\u2460\u2463"}],"title":"BigInt Integration"}],"url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype"}, |
| "find-a-builtin": {"dfnID":"find-a-builtin","dfnText":"find a builtin","external":false,"refSections":[{"refs":[{"id":"ref-for-find-a-builtin"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-find-a-builtin\u2460"}],"title":"6. Builtins"}],"url":"#find-a-builtin"}, |
| "get-internal-method-of-an-exported-gc-object": {"dfnID":"get-internal-method-of-an-exported-gc-object","dfnText":"[[Get]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-get-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#get-internal-method-of-an-exported-gc-object"}, |
| "get-the-builtins-for-a-builtin-set": {"dfnID":"get-the-builtins-for-a-builtin-set","dfnText":"get the builtins for a builtin set","external":false,"refSections":[{"refs":[{"id":"ref-for-get-the-builtins-for-a-builtin-set"},{"id":"ref-for-get-the-builtins-for-a-builtin-set\u2460"}],"title":"6. Builtins"}],"url":"#get-the-builtins-for-a-builtin-set"}, |
| "get-the-javascript-exception-tag": {"dfnID":"get-the-javascript-exception-tag","dfnText":"get the JavaScript exception tag","external":false,"refSections":[{"refs":[{"id":"ref-for-get-the-javascript-exception-tag"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-get-the-javascript-exception-tag\u2460"},{"id":"ref-for-get-the-javascript-exception-tag\u2461"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-get-the-javascript-exception-tag\u2462"}],"title":"5.9. Exceptions"}],"url":"#get-the-javascript-exception-tag"}, |
| "getglobalvalue": {"dfnID":"getglobalvalue","dfnText":"GetGlobalValue","external":false,"refSections":[{"refs":[{"id":"ref-for-getglobalvalue"},{"id":"ref-for-getglobalvalue\u2460"}],"title":"5.5. Globals"}],"url":"#getglobalvalue"}, |
| "getownproperty-internal-method-of-an-exported-gc-object": {"dfnID":"getownproperty-internal-method-of-an-exported-gc-object","dfnText":"[[GetOwnProperty]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-getownproperty-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#getownproperty-internal-method-of-an-exported-gc-object"}, |
| "getprototypeof-internal-method-of-an-exported-gc-object": {"dfnID":"getprototypeof-internal-method-of-an-exported-gc-object","dfnText":"[[GetPrototypeOf]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-getprototypeof-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#getprototypeof-internal-method-of-an-exported-gc-object"}, |
| "global": {"dfnID":"global","dfnText":"Global","external":false,"refSections":[{"refs":[{"id":"ref-for-global"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-global\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-global\u2461"},{"id":"ref-for-global\u2462"},{"id":"ref-for-global\u2463"},{"id":"ref-for-global\u2464"},{"id":"ref-for-global\u2465"},{"id":"ref-for-global\u2466"}],"title":"5.5. Globals"}],"url":"#global"}, |
| "global-object-cache": {"dfnID":"global-object-cache","dfnText":"Global object cache","external":false,"refSections":[{"refs":[{"id":"ref-for-global-object-cache"},{"id":"ref-for-global-object-cache\u2460"}],"title":"5.5. Globals"}],"url":"#global-object-cache"}, |
| "grow-the-memory-buffer": {"dfnID":"grow-the-memory-buffer","dfnText":"grow the memory buffer","external":false,"refSections":[{"refs":[{"id":"ref-for-grow-the-memory-buffer"},{"id":"ref-for-grow-the-memory-buffer\u2460"}],"title":"5.3. Memories"}],"url":"#grow-the-memory-buffer"}, |
| "hasproperty-internal-method-of-an-exported-gc-object": {"dfnID":"hasproperty-internal-method-of-an-exported-gc-object","dfnText":"[[HasProperty]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-hasproperty-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#hasproperty-internal-method-of-an-exported-gc-object"}, |
| "host-value-cache": {"dfnID":"host-value-cache","dfnText":"Host value cache","external":false,"refSections":[{"refs":[{"id":"ref-for-host-value-cache"},{"id":"ref-for-host-value-cache\u2460"}],"title":"5.6. Exported Functions"}],"url":"#host-value-cache"}, |
| "identified-with": {"dfnID":"identified-with","dfnText":"identified with","external":false,"refSections":[{"refs":[{"id":"ref-for-identified-with"},{"id":"ref-for-identified-with\u2460"},{"id":"ref-for-identified-with\u2461"},{"id":"ref-for-identified-with\u2462"}],"title":"5.3. Memories"}],"url":"#identified-with"}, |
| "index-of-the-host-function": {"dfnID":"index-of-the-host-function","dfnText":"index of the host function","external":false,"refSections":[{"refs":[{"id":"ref-for-index-of-the-host-function"}],"title":"5.6. Exported Functions"}],"url":"#index-of-the-host-function"}, |
| "initialize-a-global-object": {"dfnID":"initialize-a-global-object","dfnText":"initialize a global object","external":false,"refSections":[{"refs":[{"id":"ref-for-initialize-a-global-object"},{"id":"ref-for-initialize-a-global-object\u2460"}],"title":"5.5. Globals"}],"url":"#initialize-a-global-object"}, |
| "initialize-a-memory-object": {"dfnID":"initialize-a-memory-object","dfnText":"initialize a memory object","external":false,"refSections":[{"refs":[{"id":"ref-for-initialize-a-memory-object"},{"id":"ref-for-initialize-a-memory-object\u2460"}],"title":"5.3. Memories"}],"url":"#initialize-a-memory-object"}, |
| "initialize-a-table-object": {"dfnID":"initialize-a-table-object","dfnText":"initialize a table object","external":false,"refSections":[{"refs":[{"id":"ref-for-initialize-a-table-object"},{"id":"ref-for-initialize-a-table-object\u2460"}],"title":"5.4. Tables"}],"url":"#initialize-a-table-object"}, |
| "initialize-a-tag-object": {"dfnID":"initialize-a-tag-object","dfnText":"initialize a Tag object","external":false,"refSections":[{"refs":[{"id":"ref-for-initialize-a-tag-object"},{"id":"ref-for-initialize-a-tag-object\u2460"}],"title":"5.7.1. Tag types"}],"url":"#initialize-a-tag-object"}, |
| "initialize-an-exception-object": {"dfnID":"initialize-an-exception-object","dfnText":"initialize an Exception object","external":false,"refSections":[{"refs":[{"id":"ref-for-initialize-an-exception-object"},{"id":"ref-for-initialize-an-exception-object\u2460"}],"title":"5.9. Exceptions"}],"url":"#initialize-an-exception-object"}, |
| "initialize-an-instance-object": {"dfnID":"initialize-an-instance-object","dfnText":"initialize an instance object","external":false,"refSections":[{"refs":[{"id":"ref-for-initialize-an-instance-object"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-initialize-an-instance-object\u2460"}],"title":"5.2. Instances"}],"url":"#initialize-an-instance-object"}, |
| "instance": {"dfnID":"instance","dfnText":"Instance","external":false,"refSections":[{"refs":[{"id":"ref-for-instance"},{"id":"ref-for-instance\u2460"},{"id":"ref-for-instance\u2461"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-instance\u2462"}],"title":"5.2. Instances"},{"refs":[{"id":"ref-for-instance\u2463"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-instance\u2464"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-instance\u2465"}],"title":"5.5. Globals"}],"url":"#instance"}, |
| "instantiate-a-builtin-set": {"dfnID":"instantiate-a-builtin-set","dfnText":"instantiate a builtin set","external":false,"refSections":[{"refs":[{"id":"ref-for-instantiate-a-builtin-set"}],"title":"5. The WebAssembly Namespace"}],"url":"#instantiate-a-builtin-set"}, |
| "instantiate-a-promise-of-a-module": {"dfnID":"instantiate-a-promise-of-a-module","dfnText":"instantiate a promise of a module","external":false,"refSections":[{"refs":[{"id":"ref-for-instantiate-a-promise-of-a-module"}],"title":"5. The WebAssembly Namespace"}],"url":"#instantiate-a-promise-of-a-module"}, |
| "instantiate-imported-strings": {"dfnID":"instantiate-imported-strings","dfnText":"instantiate imported strings","external":false,"refSections":[{"refs":[{"id":"ref-for-instantiate-imported-strings"}],"title":"5. The WebAssembly Namespace"}],"url":"#instantiate-imported-strings"}, |
| "instantiate-the-core-of-a-webassembly-module": {"dfnID":"instantiate-the-core-of-a-webassembly-module","dfnText":"instantiate the core of a WebAssembly module","external":false,"refSections":[{"refs":[{"id":"ref-for-instantiate-the-core-of-a-webassembly-module"},{"id":"ref-for-instantiate-the-core-of-a-webassembly-module\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-instantiate-the-core-of-a-webassembly-module\u2461"}],"title":"5.2. Instances"}],"url":"#instantiate-the-core-of-a-webassembly-module"}, |
| "isextensible-internal-method-of-an-exported-gc-object": {"dfnID":"isextensible-internal-method-of-an-exported-gc-object","dfnText":"[[IsExtensible]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-isextensible-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#isextensible-internal-method-of-an-exported-gc-object"}, |
| "javascript-exception-tag": {"dfnID":"javascript-exception-tag","dfnText":"JavaScript exception tag","external":false,"refSections":[{"refs":[{"id":"ref-for-javascript-exception-tag"},{"id":"ref-for-javascript-exception-tag\u2460"},{"id":"ref-for-javascript-exception-tag\u2461"}],"title":"5.9.1. JavaScript exceptions"}],"url":"#javascript-exception-tag"}, |
| "memory": {"dfnID":"memory","dfnText":"Memory","external":false,"refSections":[{"refs":[{"id":"ref-for-memory"}],"title":"4.1. Interaction of the WebAssembly Store with JavaScript"},{"refs":[{"id":"ref-for-memory\u2460"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-memory\u2461"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-memory\u2462"},{"id":"ref-for-memory\u2463"},{"id":"ref-for-memory\u2464"},{"id":"ref-for-memory\u2465"},{"id":"ref-for-memory\u2466"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-memory\u2467"}],"title":"7.2. Out of Memory"}],"url":"#memory"}, |
| "memory-object-cache": {"dfnID":"memory-object-cache","dfnText":"Memory object cache","external":false,"refSections":[{"refs":[{"id":"ref-for-memory-object-cache"},{"id":"ref-for-memory-object-cache\u2460"},{"id":"ref-for-memory-object-cache\u2461"},{"id":"ref-for-memory-object-cache\u2462"}],"title":"5.3. Memories"}],"url":"#memory-object-cache"}, |
| "module": {"dfnID":"module","dfnText":"Module","external":false,"refSections":[{"refs":[{"id":"ref-for-module"},{"id":"ref-for-module\u2460"},{"id":"ref-for-module\u2461"},{"id":"ref-for-module\u2462"},{"id":"ref-for-module\u2463"},{"id":"ref-for-module\u2464"},{"id":"ref-for-module\u2465"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-module\u2466"},{"id":"ref-for-module\u2467"},{"id":"ref-for-module\u2468"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-module\u2460\u24ea"}],"title":"5.2. Instances"}],"url":"#module"}, |
| "name-of-the-webassembly-function": {"dfnID":"name-of-the-webassembly-function","dfnText":"name of the WebAssembly function","external":false,"refSections":[{"refs":[{"id":"ref-for-name-of-the-webassembly-function"}],"title":"5.6. Exported Functions"}],"url":"#name-of-the-webassembly-function"}, |
| "namespacedef-webassembly": {"dfnID":"namespacedef-webassembly","dfnText":"WebAssembly","external":false,"refSections":[{"refs":[{"id":"ref-for-namespacedef-webassembly"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-namespacedef-webassembly\u2460"}],"title":"5.1. Modules"},{"refs":[{"id":"ref-for-namespacedef-webassembly\u2461"}],"title":"5.2. Instances"},{"refs":[{"id":"ref-for-namespacedef-webassembly\u2462"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-namespacedef-webassembly\u2463"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-namespacedef-webassembly\u2464"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-namespacedef-webassembly\u2465"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-namespacedef-webassembly\u2466"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-namespacedef-webassembly\u2467"},{"id":"ref-for-namespacedef-webassembly\u2468"}],"title":"5.10. Error Objects"}],"url":"#namespacedef-webassembly"}, |
| "ownpropertykeys-internal-method-of-an-exported-gc-object": {"dfnID":"ownpropertykeys-internal-method-of-an-exported-gc-object","dfnText":"[[OwnPropertyKeys]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-ownpropertykeys-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#ownpropertykeys-internal-method-of-an-exported-gc-object"}, |
| "preventextensions-internal-method-of-an-exported-gc-object": {"dfnID":"preventextensions-internal-method-of-an-exported-gc-object","dfnText":"[[PreventExtensions]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-preventextensions-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#preventextensions-internal-method-of-an-exported-gc-object"}, |
| "read-the-imports": {"dfnID":"read-the-imports","dfnText":"read the imports","external":false,"refSections":[{"refs":[{"id":"ref-for-read-the-imports"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-read-the-imports\u2460"}],"title":"5.2. Instances"},{"refs":[{"id":"ref-for-read-the-imports\u2461"}],"title":"6. Builtins"},{"refs":[{"id":"ref-for-read-the-imports\u2462"}],"title":"9. Security and Privacy Considerations"}],"url":"#read-the-imports"}, |
| "refresh-the-memory-buffer": {"dfnID":"refresh-the-memory-buffer","dfnText":"refresh the Memory buffer","external":false,"refSections":[{"refs":[{"id":"ref-for-refresh-the-memory-buffer"},{"id":"ref-for-refresh-the-memory-buffer\u2460"}],"title":"5.3. Memories"}],"url":"#refresh-the-memory-buffer"}, |
| "retrieving-a-host-value": {"dfnID":"retrieving-a-host-value","dfnText":"retrieving a host value","external":false,"refSections":[{"refs":[{"id":"ref-for-retrieving-a-host-value"},{"id":"ref-for-retrieving-a-host-value\u2460"}],"title":"5.6. Exported Functions"}],"url":"#retrieving-a-host-value"}, |
| "run-a-host-function": {"dfnID":"run-a-host-function","dfnText":"run a host function","external":false,"refSections":[{"refs":[{"id":"ref-for-run-a-host-function"}],"title":"5.6. Exported Functions"}],"url":"#run-a-host-function"}, |
| "set-internal-method-of-an-exported-gc-object": {"dfnID":"set-internal-method-of-an-exported-gc-object","dfnText":"[[Set]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-set-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#set-internal-method-of-an-exported-gc-object"}, |
| "setprototypeof-internal-method-of-an-exported-gc-object": {"dfnID":"setprototypeof-internal-method-of-an-exported-gc-object","dfnText":"[[SetPrototypeOf]] internal method of an Exported GC Object","external":false,"refSections":[{"refs":[{"id":"ref-for-setprototypeof-internal-method-of-an-exported-gc-object"}],"title":"5.8. Garbage Collected Objects"}],"url":"#setprototypeof-internal-method-of-an-exported-gc-object"}, |
| "string-value-of-the-extern-type": {"dfnID":"string-value-of-the-extern-type","dfnText":"string value of the extern type","external":false,"refSections":[{"refs":[{"id":"ref-for-string-value-of-the-extern-type"},{"id":"ref-for-string-value-of-the-extern-type\u2460"}],"title":"5.1. Modules"}],"url":"#string-value-of-the-extern-type"}, |
| "table": {"dfnID":"table","dfnText":"Table","external":false,"refSections":[{"refs":[{"id":"ref-for-table"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-table\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-table\u2461"},{"id":"ref-for-table\u2462"},{"id":"ref-for-table\u2463"},{"id":"ref-for-table\u2464"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-table\u2465"}],"title":"7.2. Out of Memory"}],"url":"#table"}, |
| "table-object-cache": {"dfnID":"table-object-cache","dfnText":"Table object cache","external":false,"refSections":[{"refs":[{"id":"ref-for-table-object-cache"},{"id":"ref-for-table-object-cache\u2460"}],"title":"5.4. Tables"}],"url":"#table-object-cache"}, |
| "tag": {"dfnID":"tag","dfnText":"Tag","external":false,"refSections":[{"refs":[{"id":"ref-for-tag"}],"title":"4.2. WebAssembly JS Object Caches"},{"refs":[{"id":"ref-for-tag\u2460"},{"id":"ref-for-tag\u2461"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-tag\u2462"},{"id":"ref-for-tag\u2463"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-tag\u2464"},{"id":"ref-for-tag\u2465"}],"title":"5.9. Exceptions"}],"url":"#tag"}, |
| "tag-object-cache": {"dfnID":"tag-object-cache","dfnText":"Tag object cache","external":false,"refSections":[{"refs":[{"id":"ref-for-tag-object-cache"},{"id":"ref-for-tag-object-cache\u2460"}],"title":"5.7.1. Tag types"}],"url":"#tag-object-cache"}, |
| "tag_alloc": {"dfnID":"tag_alloc","dfnText":"tag_alloc","external":false,"refSections":[{"refs":[{"id":"ref-for-tag_alloc"}],"title":"5.7.1. Tag types"},{"refs":[{"id":"ref-for-tag_alloc\u2460"}],"title":"5.9.1. JavaScript exceptions"}],"url":"#tag_alloc"}, |
| "tojsvalue": {"dfnID":"tojsvalue","dfnText":"ToJSValue","external":false,"refSections":[{"refs":[{"id":"ref-for-tojsvalue"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-tojsvalue\u2460"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-tojsvalue\u2461"},{"id":"ref-for-tojsvalue\u2462"},{"id":"ref-for-tojsvalue\u2463"},{"id":"ref-for-tojsvalue\u2464"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-tojsvalue\u2465"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-tojsvalue\u2466"},{"id":"ref-for-tojsvalue\u2467"}],"title":"6.1.1. Abstract operations"},{"refs":[{"id":"ref-for-tojsvalue\u2468"}],"title":"6.1.7. fromCodePoint"},{"refs":[{"id":"ref-for-tojsvalue\u2460\u24ea"}],"title":"6.1.9. codePointAt"},{"refs":[{"id":"ref-for-tojsvalue\u2460\u2460"},{"id":"ref-for-tojsvalue\u2460\u2461"}],"title":"6.1.12. substring"}],"url":"#tojsvalue"}, |
| "tovaluetype": {"dfnID":"tovaluetype","dfnText":"ToValueType","external":false,"refSections":[{"refs":[{"id":"ref-for-tovaluetype"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-tovaluetype\u2460"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-tovaluetype\u2461"}],"title":"5.7.1. Tag types"}],"url":"#tovaluetype"}, |
| "towebassemblyvalue": {"dfnID":"towebassemblyvalue","dfnText":"ToWebAssemblyValue","external":false,"refSections":[{"refs":[{"id":"ref-for-towebassemblyvalue"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-towebassemblyvalue\u2460"},{"id":"ref-for-towebassemblyvalue\u2461"},{"id":"ref-for-towebassemblyvalue\u2462"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-towebassemblyvalue\u2463"},{"id":"ref-for-towebassemblyvalue\u2464"},{"id":"ref-for-towebassemblyvalue\u2465"}],"title":"5.5. Globals"},{"refs":[{"id":"ref-for-towebassemblyvalue\u2466"},{"id":"ref-for-towebassemblyvalue\u2467"},{"id":"ref-for-towebassemblyvalue\u2468"},{"id":"ref-for-towebassemblyvalue\u2460\u24ea"},{"id":"ref-for-towebassemblyvalue\u2460\u2460"}],"title":"5.6. Exported Functions"},{"refs":[{"id":"ref-for-towebassemblyvalue\u2460\u2461"}],"title":"5.9. Exceptions"},{"refs":[{"id":"ref-for-towebassemblyvalue\u2460\u2462"}],"title":"6.1.5. intoCharCodeArray"}],"url":"#towebassemblyvalue"}, |
| "typedefdef-addressvalue": {"dfnID":"typedefdef-addressvalue","dfnText":"AddressValue","external":false,"refSections":[{"refs":[{"id":"ref-for-typedefdef-addressvalue"},{"id":"ref-for-typedefdef-addressvalue\u2460"},{"id":"ref-for-typedefdef-addressvalue\u2461"},{"id":"ref-for-typedefdef-addressvalue\u2462"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-typedefdef-addressvalue\u2463"},{"id":"ref-for-typedefdef-addressvalue\u2464"},{"id":"ref-for-typedefdef-addressvalue\u2465"},{"id":"ref-for-typedefdef-addressvalue\u2466"},{"id":"ref-for-typedefdef-addressvalue\u2467"},{"id":"ref-for-typedefdef-addressvalue\u2468"},{"id":"ref-for-typedefdef-addressvalue\u2460\u24ea"}],"title":"5.4. Tables"},{"refs":[{"id":"ref-for-typedefdef-addressvalue\u2460\u2460"}],"title":"5.6. Exported Functions"}],"url":"#typedefdef-addressvalue"}, |
| "u64toaddressvalue": {"dfnID":"u64toaddressvalue","dfnText":"U64ToAddressValue","external":false,"refSections":[{"refs":[{"id":"ref-for-u64toaddressvalue"}],"title":"5.3. Memories"},{"refs":[{"id":"ref-for-u64toaddressvalue\u2460"}],"title":"5.4. Tables"}],"url":"#u64toaddressvalue"}, |
| "validate-an-import-for-builtins": {"dfnID":"validate-an-import-for-builtins","dfnText":"validate an import for builtins","external":false,"refSections":[{"refs":[{"id":"ref-for-validate-an-import-for-builtins"}],"title":"5. The WebAssembly Namespace"}],"url":"#validate-an-import-for-builtins"}, |
| "validate-builtin-set-names": {"dfnID":"validate-builtin-set-names","dfnText":"validate builtin set names","external":false,"refSections":[{"refs":[{"id":"ref-for-validate-builtin-set-names"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-validate-builtin-set-names\u2460"},{"id":"ref-for-validate-builtin-set-names\u2461"}],"title":"6. Builtins"}],"url":"#validate-builtin-set-names"}, |
| "validate-builtins-and-imported-string-for-a-webassembly-module": {"dfnID":"validate-builtins-and-imported-string-for-a-webassembly-module","dfnText":"validate builtins and imported string for a WebAssembly module","external":false,"refSections":[{"refs":[{"id":"ref-for-validate-builtins-and-imported-string-for-a-webassembly-module"},{"id":"ref-for-validate-builtins-and-imported-string-for-a-webassembly-module\u2460"}],"title":"5. The WebAssembly Namespace"},{"refs":[{"id":"ref-for-validate-builtins-and-imported-string-for-a-webassembly-module\u2461"}],"title":"5.1. Modules"}],"url":"#validate-builtins-and-imported-string-for-a-webassembly-module"}, |
| }; |
| |
| document.addEventListener("DOMContentLoaded", ()=>{ |
| genAllDfnPanels(); |
| |
| document.body.addEventListener("click", (e) => { |
| // If not handled already, just hide all dfn panels. |
| hideAllDfnPanels(); |
| }); |
| }); |
| |
| window.addEventListener("resize", () => { |
| // Pin any visible dfn panel |
| queryAll(".dfn-panel.on, .dfn-panel.activated").forEach(el=>positionDfnPanel(el)); |
| }); |
| |
| function genAllDfnPanels() { |
| for(const panelData of Object.values(dfnPanelData)) { |
| const dfnID = panelData.dfnID; |
| const dfn = document.getElementById(dfnID); |
| if(!dfn) { |
| console.log(`Can't find dfn#${dfnID}.`, panelData); |
| continue; |
| } |
| dfn.panelData = panelData; |
| insertDfnPopupAction(dfn); |
| } |
| } |
| |
| function genDfnPanel(dfn, { dfnID, url, dfnText, refSections, external }) { |
| const dfnPanel = mk.aside({ |
| class: "dfn-panel on", |
| id: `infopanel-for-${dfnID}`, |
| "data-for": dfnID, |
| "aria-labelled-by":`infopaneltitle-for-${dfnID}`, |
| }, |
| mk.span({id:`infopaneltitle-for-${dfnID}`, style:"display:none"}, |
| `Info about the '${dfnText}' ${external?"external":""} reference.`), |
| mk.a({href:url, class:"dfn-link"}, url), |
| refSections.length == 0 ? [] : |
| mk.b({}, "Referenced in:"), |
| mk.ul({}, |
| ...refSections.map(section=> |
| mk.li({}, |
| ...section.refs.map((ref, refI)=> |
| [ |
| mk.a({ href: `#${ref.id}` }, |
| (refI == 0) ? section.title : `(${refI + 1})` |
| ), |
| " ", |
| ] |
| ), |
| ), |
| ), |
| ), |
| genLinkingSyntaxes(dfn), |
| ); |
| |
| dfnPanel.addEventListener('click', (event) => { |
| if (event.target.nodeName == 'A') { |
| scrollToTargetAndHighlight(event); |
| pinDfnPanel(dfnPanel); |
| } |
| event.stopPropagation(); |
| refocusOnTarget(event); |
| }); |
| dfnPanel.addEventListener('keydown', (event) => { |
| if(event.keyCode == 27) { // Escape key |
| hideDfnPanel({dfnPanel}); |
| event.stopPropagation(); |
| event.preventDefault(); |
| } |
| }); |
| |
| dfnPanel.dfn = dfn; |
| dfn.dfnPanel = dfnPanel; |
| return dfnPanel; |
| } |
| |
| |
| |
| function hideAllDfnPanels() { |
| // Delete the currently-active dfn panel. |
| queryAll(".dfn-panel").forEach(dfnPanel=>hideDfnPanel({dfnPanel})); |
| } |
| |
| function showDfnPanel(dfn) { |
| hideAllDfnPanels(); // Only display one at a time. |
| |
| dfn.setAttribute("aria-expanded", "true"); |
| |
| const dfnPanel = genDfnPanel(dfn, dfn.panelData); |
| |
| // Give the dfn a unique tabindex, and then |
| // give all the tabbable panel bits successive indexes. |
| let tabIndex = 100; |
| dfn.tabIndex = tabIndex++; |
| const tabbable = dfnPanel.querySelectorAll(":is(a, button)"); |
| for (const el of tabbable) { |
| el.tabIndex = tabIndex++; |
| } |
| |
| append(document.body, dfnPanel); |
| positionDfnPanel(dfnPanel); |
| } |
| |
| function positionDfnPanel(dfnPanel) { |
| const dfn = dfnPanel.dfn; |
| const dfnPos = getBounds(dfn); |
| dfnPanel.style.top = dfnPos.bottom + "px"; |
| dfnPanel.style.left = dfnPos.left + "px"; |
| |
| const panelPos = dfnPanel.getBoundingClientRect(); |
| const panelMargin = 8; |
| const maxRight = document.body.parentNode.clientWidth - panelMargin; |
| if (panelPos.right > maxRight) { |
| const overflowAmount = panelPos.right - maxRight; |
| const newLeft = Math.max(panelMargin, dfnPos.left - overflowAmount); |
| dfnPanel.style.left = newLeft + "px"; |
| } |
| } |
| |
| function pinDfnPanel(dfnPanel) { |
| // Switch it to "activated" state, which pins it. |
| dfnPanel.classList.add("activated"); |
| dfnPanel.style.position = "fixed"; |
| dfnPanel.style.left = null; |
| dfnPanel.style.top = null; |
| } |
| |
| function hideDfnPanel({dfn, dfnPanel}) { |
| if(!dfnPanel) dfnPanel = dfn.dfnPanel; |
| if(!dfn) dfn = dfnPanel.dfn; |
| dfn.dfnPanel = undefined; |
| dfnPanel.dfn = undefined; |
| dfn.setAttribute("aria-expanded", "false"); |
| dfn.tabIndex = undefined; |
| dfnPanel.remove() |
| } |
| |
| function toggleDfnPanel(dfn) { |
| if(dfn.dfnPanel) { |
| hideDfnPanel(dfn); |
| } else { |
| showDfnPanel(dfn); |
| } |
| } |
| |
| function insertDfnPopupAction(dfn) { |
| dfn.setAttribute('role', 'button'); |
| dfn.setAttribute('aria-expanded', 'false') |
| dfn.tabIndex = 0; |
| dfn.classList.add('has-dfn-panel'); |
| dfn.addEventListener('click', (event) => { |
| toggleDfnPanel(dfn); |
| event.stopPropagation(); |
| }); |
| dfn.addEventListener('keypress', (event) => { |
| const kc = event.keyCode; |
| // 32->Space, 13->Enter |
| if(kc == 32 || kc == 13) { |
| toggleDfnPanel(dfn); |
| event.stopPropagation(); |
| event.preventDefault(); |
| } |
| }); |
| } |
| |
| function refocusOnTarget(event) { |
| const target = event.target; |
| setTimeout(() => { |
| // Refocus on the event.target element. |
| // This is needed after browser scrolls to the destination. |
| target.focus(); |
| }); |
| } |
| |
| // TODO: shared util |
| // Returns the root-level absolute position {left and top} of element. |
| function getBounds(el, relativeTo=document.body) { |
| const relativeRect = relativeTo.getBoundingClientRect(); |
| const elRect = el.getBoundingClientRect(); |
| const top = elRect.top - relativeRect.top; |
| const left = elRect.left - relativeRect.left; |
| return { |
| top, |
| left, |
| bottom: top + elRect.height, |
| right: left + elRect.width, |
| } |
| } |
| |
| function scrollToTargetAndHighlight(event) { |
| let hash = event.target.hash; |
| if (hash) { |
| hash = decodeURIComponent(hash.substring(1)); |
| const dest = document.getElementById(hash); |
| if (dest) { |
| dest.classList.add('highlighted'); |
| setTimeout(() => dest.classList.remove('highlighted'), 1000); |
| } |
| } |
| } |
| |
| // Functions, divided by link type, that wrap an autolink's |
| // contents with the appropriate outer syntax. |
| // Alternately, a string naming another type they format |
| // the same as. |
| function needsFor(type) { |
| switch(type) { |
| case "descriptor": |
| case "value": |
| case "element-attr": |
| case "attr-value": |
| case "element-state": |
| case "method": |
| case "constructor": |
| case "argument": |
| case "attribute": |
| case "const": |
| case "dict-member": |
| case "event": |
| case "enum-value": |
| case "stringifier": |
| case "serializer": |
| case "iterator": |
| case "maplike": |
| case "setlike": |
| case "state": |
| case "mode": |
| case "context": |
| case "facet": return true; |
| |
| default: return false; |
| } |
| } |
| function refusesFor(type) { |
| switch(type) { |
| case "property": |
| case "element": |
| case "interface": |
| case "namespace": |
| case "callback": |
| case "dictionary": |
| case "enum": |
| case "exception": |
| case "typedef": |
| case "http-header": |
| case "permission": return true; |
| |
| default: return false; |
| } |
| } |
| function linkFormatterFromType(type) { |
| switch(type) { |
| case 'scheme': |
| case 'permission': |
| case 'dfn': return (text) => `[=${text}=]`; |
| |
| case 'abstract-op': return (text) => `[\$${text}\$]`; |
| |
| case 'function': |
| case 'at-rule': |
| case 'selector': |
| case 'value': return (text) => `''${text}''`; |
| |
| case 'http-header': return (text) => `[:${text}:]`; |
| |
| case 'interface': |
| case 'constructor': |
| case 'method': |
| case 'argument': |
| case 'attribute': |
| case 'callback': |
| case 'dictionary': |
| case 'dict-member': |
| case 'enum': |
| case 'enum-value': |
| case 'exception': |
| case 'const': |
| case 'typedef': |
| case 'stringifier': |
| case 'serializer': |
| case 'iterator': |
| case 'maplike': |
| case 'setlike': |
| case 'extended-attribute': |
| case 'event': |
| case 'idl': return (text) => `{{${text}}}`; |
| |
| case 'element-state': |
| case 'element-attr': |
| case 'attr-value': |
| case 'element': return (element) => `<{${element}}>`; |
| |
| case 'grammar': return (text) => `${text} (within a <pre class=prod>)`; |
| |
| case 'type': return (text)=> `<<${text}>>`; |
| |
| case 'descriptor': |
| case 'property': return (text) => `'${text}'`; |
| |
| default: return; |
| }; |
| }; |
| |
| function genLinkingSyntaxes(dfn) { |
| if(dfn.tagName != "DFN") return; |
| |
| const type = dfn.getAttribute('data-dfn-type'); |
| if(!type) { |
| console.log(`<dfn> doesn't have a data-dfn-type:`, dfn); |
| return []; |
| } |
| |
| // Return a function that wraps link text based on the type |
| const linkFormatter = linkFormatterFromType(type); |
| if(!linkFormatter) { |
| console.log(`<dfn> has an unknown data-dfn-type:`, dfn); |
| return []; |
| } |
| |
| let ltAlts; |
| if(dfn.hasAttribute('data-lt')) { |
| ltAlts = dfn.getAttribute('data-lt') |
| .split("|") |
| .map(x=>x.trim()); |
| } else { |
| ltAlts = [dfn.textContent.trim()]; |
| } |
| if(type == "type") { |
| // lt of "<foo>", but "foo" is the interior; |
| // <<foo/bar>> is how you write it with a for, |
| // not <foo/<bar>> or whatever. |
| for(var i = 0; i < ltAlts.length; i++) { |
| const lt = ltAlts[i]; |
| const match = /<(.*)>/.exec(lt); |
| if(match) { ltAlts[i] = match[1]; } |
| } |
| } |
| |
| let forAlts; |
| if(dfn.hasAttribute('data-dfn-for')) { |
| forAlts = dfn.getAttribute('data-dfn-for') |
| .split(",") |
| .map(x=>x.trim()); |
| } else { |
| forAlts = ['']; |
| } |
| |
| let linkingSyntaxes = []; |
| if(!needsFor(type)) { |
| for(const lt of ltAlts) { |
| linkingSyntaxes.push(linkFormatter(lt)); |
| } |
| } |
| if(!refusesFor(type)) { |
| for(const f of forAlts) { |
| linkingSyntaxes.push(linkFormatter(`${f}/${ltAlts[0]}`)) |
| } |
| } |
| return [ |
| mk.b({}, 'Possible linking syntaxes:'), |
| mk.ul({}, |
| ...linkingSyntaxes.map(link => { |
| const copyLink = async () => |
| await navigator.clipboard.writeText(link); |
| return mk.li({}, |
| mk.div({ class: 'link-item' }, |
| mk.button({ |
| class: 'copy-icon', title: 'Copy', |
| type: 'button', |
| _onclick: copyLink, |
| tabindex: 0, |
| }, mk.span({ class: 'icon' }) ), |
| mk.span({}, link) |
| ) |
| ); |
| }) |
| ) |
| ]; |
| } |
| } |
| </script> |
| <script>/* Boilerplate: script-ref-hints */ |
| "use strict"; |
| { |
| let refsData = { |
| "#a-new-exported-function": {"displayText":"a new exported function","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"a new exported function","type":"dfn","url":"#a-new-exported-function"}, |
| "#a-new-exported-gc-object": {"displayText":"a new exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"a new exported gc object","type":"dfn","url":"#a-new-exported-gc-object"}, |
| "#abstract-opdef-charcodeat": {"displayText":"CharCodeAt","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"CharCodeAt","type":"abstract-op","url":"#abstract-opdef-charcodeat"}, |
| "#abstract-opdef-fromcharcode": {"displayText":"FromCharCode","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"FromCharCode","type":"abstract-op","url":"#abstract-opdef-fromcharcode"}, |
| "#abstract-opdef-unwrapstring": {"displayText":"UnwrapString","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"UnwrapString","type":"abstract-op","url":"#abstract-opdef-unwrapstring"}, |
| "#addressvaluetou64": {"displayText":"addressvaluetou64","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"addressvaluetou64","type":"dfn","url":"#addressvaluetou64"}, |
| "#associated-store": {"displayText":"associated store","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"associated store","type":"dfn","url":"#associated-store"}, |
| "#asynchronously-compile-a-webassembly-module": {"displayText":"asynchronously compile a webassembly module","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"asynchronously compile a webassembly module","type":"dfn","url":"#asynchronously-compile-a-webassembly-module"}, |
| "#asynchronously-instantiate-a-webassembly-module": {"displayText":"asynchronously instantiate a webassembly module","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"asynchronously instantiate a webassembly module","type":"dfn","url":"#asynchronously-instantiate-a-webassembly-module"}, |
| "#builtin-set-name": {"displayText":"name","export":true,"for_":["builtin-set"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"name","type":"dfn","url":"#builtin-set-name"}, |
| "#builtin-set-qualified-name": {"displayText":"qualified name","export":true,"for_":["builtin-set"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"qualified name","type":"dfn","url":"#builtin-set-qualified-name"}, |
| "#call-an-exported-function": {"displayText":"call an exported function","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"call an exported function","type":"dfn","url":"#call-an-exported-function"}, |
| "#compile-a-webassembly-module": {"displayText":"compile a webassembly module","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"compile a webassembly module","type":"dfn","url":"#compile-a-webassembly-module"}, |
| "#construct-a-webassembly-module-object": {"displayText":"construct a webassembly module object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"construct a webassembly module object","type":"dfn","url":"#construct-a-webassembly-module-object"}, |
| "#create-a-builtin-function": {"displayText":"create a builtin function","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create a builtin function","type":"dfn","url":"#create-a-builtin-function"}, |
| "#create-a-fixed-length-memory-buffer": {"displayText":"create a fixed length memory buffer","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create a fixed length memory buffer","type":"dfn","url":"#create-a-fixed-length-memory-buffer"}, |
| "#create-a-global-object": {"displayText":"create a global object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create a global object","type":"dfn","url":"#create-a-global-object"}, |
| "#create-a-host-function": {"displayText":"create a host function","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create a host function","type":"dfn","url":"#create-a-host-function"}, |
| "#create-a-memory-object": {"displayText":"create a memory object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create a memory object","type":"dfn","url":"#create-a-memory-object"}, |
| "#create-a-resizable-memory-buffer": {"displayText":"create a resizable memory buffer","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create a resizable memory buffer","type":"dfn","url":"#create-a-resizable-memory-buffer"}, |
| "#create-a-table-object": {"displayText":"create a table object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create a table object","type":"dfn","url":"#create-a-table-object"}, |
| "#create-a-tag-object": {"displayText":"create a tag object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create a tag object","type":"dfn","url":"#create-a-tag-object"}, |
| "#create-an-exception-object": {"displayText":"create an exception object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create an exception object","type":"dfn","url":"#create-an-exception-object"}, |
| "#create-an-exports-object": {"displayText":"create an exports object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"create an exports object","type":"dfn","url":"#create-an-exports-object"}, |
| "#defaultvalue": {"displayText":"defaultvalue","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"defaultvalue","type":"dfn","url":"#defaultvalue"}, |
| "#defineownproperty-internal-method-of-an-exported-gc-object": {"displayText":"[[defineownproperty]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[defineownproperty]] internal method of an exported gc object","type":"dfn","url":"#defineownproperty-internal-method-of-an-exported-gc-object"}, |
| "#delete-internal-method-of-an-exported-gc-object": {"displayText":"[[delete]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[delete]] internal method of an exported gc object","type":"dfn","url":"#delete-internal-method-of-an-exported-gc-object"}, |
| "#dictdef-exceptionoptions": {"displayText":"ExceptionOptions","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"ExceptionOptions","type":"dictionary","url":"#dictdef-exceptionoptions"}, |
| "#dictdef-globaldescriptor": {"displayText":"GlobalDescriptor","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"GlobalDescriptor","type":"dictionary","url":"#dictdef-globaldescriptor"}, |
| "#dictdef-memorydescriptor": {"displayText":"MemoryDescriptor","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"MemoryDescriptor","type":"dictionary","url":"#dictdef-memorydescriptor"}, |
| "#dictdef-moduleexportdescriptor": {"displayText":"ModuleExportDescriptor","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"ModuleExportDescriptor","type":"dictionary","url":"#dictdef-moduleexportdescriptor"}, |
| "#dictdef-moduleimportdescriptor": {"displayText":"ModuleImportDescriptor","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"ModuleImportDescriptor","type":"dictionary","url":"#dictdef-moduleimportdescriptor"}, |
| "#dictdef-tabledescriptor": {"displayText":"TableDescriptor","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"TableDescriptor","type":"dictionary","url":"#dictdef-tabledescriptor"}, |
| "#dictdef-tagtype": {"displayText":"TagType","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"TagType","type":"dictionary","url":"#dictdef-tagtype"}, |
| "#dictdef-webassemblycompileoptions": {"displayText":"WebAssemblyCompileOptions","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"WebAssemblyCompileOptions","type":"dictionary","url":"#dictdef-webassemblycompileoptions"}, |
| "#dictdef-webassemblyinstantiatedsource": {"displayText":"WebAssemblyInstantiatedSource","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"WebAssemblyInstantiatedSource","type":"dictionary","url":"#dictdef-webassemblyinstantiatedsource"}, |
| "#dom-exception-exception": {"displayText":"Exception(exceptionTag, payload, options)","export":true,"for_":["Exception"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Exception(exceptionTag, payload, options)","type":"constructor","url":"#dom-exception-exception"}, |
| "#dom-exception-getarg": {"displayText":"getArg(index)","export":true,"for_":["Exception"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"getArg(index)","type":"method","url":"#dom-exception-getarg"}, |
| "#dom-exception-is": {"displayText":"is(exceptionTag)","export":true,"for_":["Exception"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"is(exceptionTag)","type":"method","url":"#dom-exception-is"}, |
| "#dom-exception-stack": {"displayText":"stack","export":true,"for_":["Exception"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"stack","type":"attribute","url":"#dom-exception-stack"}, |
| "#dom-global-global": {"displayText":"Global(descriptor, v)","export":true,"for_":["Global"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Global(descriptor, v)","type":"constructor","url":"#dom-global-global"}, |
| "#dom-global-value": {"displayText":"value","export":true,"for_":["Global"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"value","type":"attribute","url":"#dom-global-value"}, |
| "#dom-global-valueof": {"displayText":"valueOf()","export":true,"for_":["Global"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"valueOf()","type":"method","url":"#dom-global-valueof"}, |
| "#dom-instance-exports": {"displayText":"exports","export":true,"for_":["Instance"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"exports","type":"attribute","url":"#dom-instance-exports"}, |
| "#dom-instance-instance": {"displayText":"Instance(module, importObject)","export":true,"for_":["Instance"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Instance(module, importObject)","type":"constructor","url":"#dom-instance-instance"}, |
| "#dom-memory-buffer": {"displayText":"buffer","export":true,"for_":["Memory"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"buffer","type":"attribute","url":"#dom-memory-buffer"}, |
| "#dom-memory-grow": {"displayText":"grow(delta)","export":true,"for_":["Memory"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"grow(delta)","type":"method","url":"#dom-memory-grow"}, |
| "#dom-memory-memory": {"displayText":"Memory(descriptor)","export":true,"for_":["Memory"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Memory(descriptor)","type":"constructor","url":"#dom-memory-memory"}, |
| "#dom-memory-tofixedlengthbuffer": {"displayText":"toFixedLengthBuffer()","export":true,"for_":["Memory"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"toFixedLengthBuffer()","type":"method","url":"#dom-memory-tofixedlengthbuffer"}, |
| "#dom-memory-toresizablebuffer": {"displayText":"toResizableBuffer()","export":true,"for_":["Memory"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"toResizableBuffer()","type":"method","url":"#dom-memory-toresizablebuffer"}, |
| "#dom-module-customsections": {"displayText":"customSections(moduleObject, sectionName)","export":true,"for_":["Module"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"customSections(moduleObject, sectionName)","type":"method","url":"#dom-module-customsections"}, |
| "#dom-module-exports": {"displayText":"exports(moduleObject)","export":true,"for_":["Module"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"exports(moduleObject)","type":"method","url":"#dom-module-exports"}, |
| "#dom-module-imports": {"displayText":"imports(moduleObject)","export":true,"for_":["Module"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"imports(moduleObject)","type":"method","url":"#dom-module-imports"}, |
| "#dom-module-module": {"displayText":"Module(bytes, options)","export":true,"for_":["Module"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Module(bytes, options)","type":"constructor","url":"#dom-module-module"}, |
| "#dom-moduleexportdescriptor-kind": {"displayText":"kind","export":true,"for_":["ModuleExportDescriptor"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"kind","type":"dict-member","url":"#dom-moduleexportdescriptor-kind"}, |
| "#dom-moduleexportdescriptor-name": {"displayText":"name","export":true,"for_":["ModuleExportDescriptor"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"name","type":"dict-member","url":"#dom-moduleexportdescriptor-name"}, |
| "#dom-moduleimportdescriptor-kind": {"displayText":"kind","export":true,"for_":["ModuleImportDescriptor"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"kind","type":"dict-member","url":"#dom-moduleimportdescriptor-kind"}, |
| "#dom-moduleimportdescriptor-module": {"displayText":"module","export":true,"for_":["ModuleImportDescriptor"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"module","type":"dict-member","url":"#dom-moduleimportdescriptor-module"}, |
| "#dom-moduleimportdescriptor-name": {"displayText":"name","export":true,"for_":["ModuleImportDescriptor"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"name","type":"dict-member","url":"#dom-moduleimportdescriptor-name"}, |
| "#dom-table-get": {"displayText":"get(index)","export":true,"for_":["Table"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"get(index)","type":"method","url":"#dom-table-get"}, |
| "#dom-table-grow": {"displayText":"grow(delta, value)","export":true,"for_":["Table"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"grow(delta, value)","type":"method","url":"#dom-table-grow"}, |
| "#dom-table-length": {"displayText":"length","export":true,"for_":["Table"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"length","type":"attribute","url":"#dom-table-length"}, |
| "#dom-table-set": {"displayText":"set(index, value)","export":true,"for_":["Table"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"set(index, value)","type":"method","url":"#dom-table-set"}, |
| "#dom-table-table": {"displayText":"Table(descriptor, value)","export":true,"for_":["Table"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Table(descriptor, value)","type":"constructor","url":"#dom-table-table"}, |
| "#dom-tag-tag": {"displayText":"Tag(type)","export":true,"for_":["Tag"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Tag(type)","type":"constructor","url":"#dom-tag-tag"}, |
| "#dom-webassembly-compile": {"displayText":"compile(bytes, options)","export":true,"for_":["WebAssembly"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"compile(bytes, options)","type":"method","url":"#dom-webassembly-compile"}, |
| "#dom-webassembly-instantiate": {"displayText":"instantiate(bytes, importObject, options)","export":true,"for_":["WebAssembly"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"instantiate(bytes, importObject, options)","type":"method","url":"#dom-webassembly-instantiate"}, |
| "#dom-webassembly-instantiate-moduleobject-importobject": {"displayText":"instantiate(moduleObject, importObject)","export":true,"for_":["WebAssembly"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"instantiate(moduleObject, importObject)","type":"method","url":"#dom-webassembly-instantiate-moduleobject-importobject"}, |
| "#dom-webassembly-jstag": {"displayText":"JSTag","export":true,"for_":["WebAssembly"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"JSTag","type":"attribute","url":"#dom-webassembly-jstag"}, |
| "#dom-webassembly-validate": {"displayText":"validate(bytes, options)","export":true,"for_":["WebAssembly"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"validate(bytes, options)","type":"method","url":"#dom-webassembly-validate"}, |
| "#dom-webassemblyinstantiatedsource-instance": {"displayText":"instance","export":true,"for_":["WebAssemblyInstantiatedSource"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"instance","type":"dict-member","url":"#dom-webassemblyinstantiatedsource-instance"}, |
| "#dom-webassemblyinstantiatedsource-module": {"displayText":"module","export":true,"for_":["WebAssemblyInstantiatedSource"],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"module","type":"dict-member","url":"#dom-webassemblyinstantiatedsource-module"}, |
| "#enumdef-addresstype": {"displayText":"AddressType","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"AddressType","type":"enum","url":"#enumdef-addresstype"}, |
| "#enumdef-importexportkind": {"displayText":"ImportExportKind","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"ImportExportKind","type":"enum","url":"#enumdef-importexportkind"}, |
| "#enumdef-tablekind": {"displayText":"TableKind","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"TableKind","type":"enum","url":"#enumdef-tablekind"}, |
| "#enumdef-valuetype": {"displayText":"ValueType","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"ValueType","type":"enum","url":"#enumdef-valuetype"}, |
| "#exception": {"displayText":"Exception","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Exception","type":"interface","url":"#exception"}, |
| "#exception-object-cache": {"displayText":"exception object cache","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"exception object cache","type":"dfn","url":"#exception-object-cache"}, |
| "#exceptiondef-compileerror": {"displayText":"CompileError","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"CompileError","type":"exception","url":"#exceptiondef-compileerror"}, |
| "#exceptiondef-linkerror": {"displayText":"LinkError","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"LinkError","type":"exception","url":"#exceptiondef-linkerror"}, |
| "#exceptiondef-runtimeerror": {"displayText":"RuntimeError","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"RuntimeError","type":"exception","url":"#exceptiondef-runtimeerror"}, |
| "#exported-function": {"displayText":"exported function","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"exported function","type":"dfn","url":"#exported-function"}, |
| "#exported-function-cache": {"displayText":"exported function cache","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"exported function cache","type":"dfn","url":"#exported-function-cache"}, |
| "#exported-gc-object": {"displayText":"exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"exported gc object","type":"dfn","url":"#exported-gc-object"}, |
| "#exported-gc-object-cache": {"displayText":"exported gc object cache","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"exported gc object cache","type":"dfn","url":"#exported-gc-object-cache"}, |
| "#find-a-builtin": {"displayText":"find a builtin","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"find a builtin","type":"dfn","url":"#find-a-builtin"}, |
| "#get-internal-method-of-an-exported-gc-object": {"displayText":"[[get]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[get]] internal method of an exported gc object","type":"dfn","url":"#get-internal-method-of-an-exported-gc-object"}, |
| "#get-the-builtins-for-a-builtin-set": {"displayText":"get the builtins for a builtin set","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"get the builtins for a builtin set","type":"dfn","url":"#get-the-builtins-for-a-builtin-set"}, |
| "#get-the-javascript-exception-tag": {"displayText":"get the javascript exception tag","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"get the javascript exception tag","type":"dfn","url":"#get-the-javascript-exception-tag"}, |
| "#getglobalvalue": {"displayText":"getglobalvalue","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"getglobalvalue","type":"dfn","url":"#getglobalvalue"}, |
| "#getownproperty-internal-method-of-an-exported-gc-object": {"displayText":"[[getownproperty]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[getownproperty]] internal method of an exported gc object","type":"dfn","url":"#getownproperty-internal-method-of-an-exported-gc-object"}, |
| "#getprototypeof-internal-method-of-an-exported-gc-object": {"displayText":"[[getprototypeof]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[getprototypeof]] internal method of an exported gc object","type":"dfn","url":"#getprototypeof-internal-method-of-an-exported-gc-object"}, |
| "#global": {"displayText":"Global","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Global","type":"interface","url":"#global"}, |
| "#global-object-cache": {"displayText":"global object cache","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"global object cache","type":"dfn","url":"#global-object-cache"}, |
| "#grow-the-memory-buffer": {"displayText":"grow the memory buffer","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"grow the memory buffer","type":"dfn","url":"#grow-the-memory-buffer"}, |
| "#hasproperty-internal-method-of-an-exported-gc-object": {"displayText":"[[hasproperty]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[hasproperty]] internal method of an exported gc object","type":"dfn","url":"#hasproperty-internal-method-of-an-exported-gc-object"}, |
| "#host-value-cache": {"displayText":"host value cache","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"host value cache","type":"dfn","url":"#host-value-cache"}, |
| "#identified-with": {"displayText":"identified with","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"identified with","type":"dfn","url":"#identified-with"}, |
| "#index-of-the-host-function": {"displayText":"index of the host function","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"index of the host function","type":"dfn","url":"#index-of-the-host-function"}, |
| "#initialize-a-global-object": {"displayText":"initialize a global object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"initialize a global object","type":"dfn","url":"#initialize-a-global-object"}, |
| "#initialize-a-memory-object": {"displayText":"initialize a memory object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"initialize a memory object","type":"dfn","url":"#initialize-a-memory-object"}, |
| "#initialize-a-table-object": {"displayText":"initialize a table object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"initialize a table object","type":"dfn","url":"#initialize-a-table-object"}, |
| "#initialize-a-tag-object": {"displayText":"initialize a tag object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"initialize a tag object","type":"dfn","url":"#initialize-a-tag-object"}, |
| "#initialize-an-exception-object": {"displayText":"initialize an exception object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"initialize an exception object","type":"dfn","url":"#initialize-an-exception-object"}, |
| "#initialize-an-instance-object": {"displayText":"initialize an instance object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"initialize an instance object","type":"dfn","url":"#initialize-an-instance-object"}, |
| "#instance": {"displayText":"Instance","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Instance","type":"interface","url":"#instance"}, |
| "#instantiate-a-builtin-set": {"displayText":"instantiate a builtin set","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"instantiate a builtin set","type":"dfn","url":"#instantiate-a-builtin-set"}, |
| "#instantiate-a-promise-of-a-module": {"displayText":"instantiate a promise of a module","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"instantiate a promise of a module","type":"dfn","url":"#instantiate-a-promise-of-a-module"}, |
| "#instantiate-imported-strings": {"displayText":"instantiate imported strings","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"instantiate imported strings","type":"dfn","url":"#instantiate-imported-strings"}, |
| "#instantiate-the-core-of-a-webassembly-module": {"displayText":"instantiate the core of a webassembly module","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"instantiate the core of a webassembly module","type":"dfn","url":"#instantiate-the-core-of-a-webassembly-module"}, |
| "#isextensible-internal-method-of-an-exported-gc-object": {"displayText":"[[isextensible]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[isextensible]] internal method of an exported gc object","type":"dfn","url":"#isextensible-internal-method-of-an-exported-gc-object"}, |
| "#javascript-exception-tag": {"displayText":"javascript exception tag","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"javascript exception tag","type":"dfn","url":"#javascript-exception-tag"}, |
| "#memory": {"displayText":"Memory","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Memory","type":"interface","url":"#memory"}, |
| "#memory-object-cache": {"displayText":"memory object cache","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"memory object cache","type":"dfn","url":"#memory-object-cache"}, |
| "#module": {"displayText":"Module","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Module","type":"interface","url":"#module"}, |
| "#name-of-the-webassembly-function": {"displayText":"name of the webassembly function","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"name of the webassembly function","type":"dfn","url":"#name-of-the-webassembly-function"}, |
| "#namespacedef-webassembly": {"displayText":"WebAssembly","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"WebAssembly","type":"namespace","url":"#namespacedef-webassembly"}, |
| "#ownpropertykeys-internal-method-of-an-exported-gc-object": {"displayText":"[[ownpropertykeys]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[ownpropertykeys]] internal method of an exported gc object","type":"dfn","url":"#ownpropertykeys-internal-method-of-an-exported-gc-object"}, |
| "#preventextensions-internal-method-of-an-exported-gc-object": {"displayText":"[[preventextensions]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[preventextensions]] internal method of an exported gc object","type":"dfn","url":"#preventextensions-internal-method-of-an-exported-gc-object"}, |
| "#read-the-imports": {"displayText":"read the imports","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"read the imports","type":"dfn","url":"#read-the-imports"}, |
| "#refresh-the-memory-buffer": {"displayText":"refresh the memory buffer","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"refresh the memory buffer","type":"dfn","url":"#refresh-the-memory-buffer"}, |
| "#retrieving-a-host-value": {"displayText":"retrieving a host value","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"retrieving a host value","type":"dfn","url":"#retrieving-a-host-value"}, |
| "#run-a-host-function": {"displayText":"run a host function","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"run a host function","type":"dfn","url":"#run-a-host-function"}, |
| "#set-internal-method-of-an-exported-gc-object": {"displayText":"[[set]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[set]] internal method of an exported gc object","type":"dfn","url":"#set-internal-method-of-an-exported-gc-object"}, |
| "#setprototypeof-internal-method-of-an-exported-gc-object": {"displayText":"[[setprototypeof]] internal method of an exported gc object","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"[[setprototypeof]] internal method of an exported gc object","type":"dfn","url":"#setprototypeof-internal-method-of-an-exported-gc-object"}, |
| "#string-value-of-the-extern-type": {"displayText":"string value of the extern type","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"string value of the extern type","type":"dfn","url":"#string-value-of-the-extern-type"}, |
| "#table": {"displayText":"Table","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Table","type":"interface","url":"#table"}, |
| "#table-object-cache": {"displayText":"table object cache","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"table object cache","type":"dfn","url":"#table-object-cache"}, |
| "#tag": {"displayText":"Tag","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"Tag","type":"interface","url":"#tag"}, |
| "#tag-object-cache": {"displayText":"tag object cache","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"tag object cache","type":"dfn","url":"#tag-object-cache"}, |
| "#tag_alloc": {"displayText":"tag_alloc","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"tag_alloc","type":"dfn","url":"#tag_alloc"}, |
| "#tojsvalue": {"displayText":"tojsvalue","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"tojsvalue","type":"dfn","url":"#tojsvalue"}, |
| "#tovaluetype": {"displayText":"tovaluetype","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"tovaluetype","type":"dfn","url":"#tovaluetype"}, |
| "#towebassemblyvalue": {"displayText":"towebassemblyvalue","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"towebassemblyvalue","type":"dfn","url":"#towebassemblyvalue"}, |
| "#typedefdef-addressvalue": {"displayText":"AddressValue","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"AddressValue","type":"typedef","url":"#typedefdef-addressvalue"}, |
| "#u64toaddressvalue": {"displayText":"u64toaddressvalue","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"u64toaddressvalue","type":"dfn","url":"#u64toaddressvalue"}, |
| "#validate-an-import-for-builtins": {"displayText":"validate an import for builtins","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"validate an import for builtins","type":"dfn","url":"#validate-an-import-for-builtins"}, |
| "#validate-builtin-set-names": {"displayText":"validate builtin set names","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"validate builtin set names","type":"dfn","url":"#validate-builtin-set-names"}, |
| "#validate-builtins-and-imported-string-for-a-webassembly-module": {"displayText":"validate builtins and imported string for a webassembly module","export":true,"for_":[],"level":"2","normative":true,"shortname":"wasm-js-api","spec":"wasm-js-api-2","status":"local","text":"validate builtins and imported string for a webassembly module","type":"dfn","url":"#validate-builtins-and-imported-string-for-a-webassembly-module"}, |
| "00c2566d_https://webassembly.github.io/spec/core/syntax/values.html#syntax-float": {"displayText":"canon","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"canon","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "1eccdce5_https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype": {"displayText":"i32","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"i32","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype"}, |
| "2a855222_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"ref.i31","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref.i31","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "2be47a22_https://webassembly.github.io/spec/core/syntax/types.html#external-types": {"displayText":"mem","export":true,"for_":["external-type"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"mem","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "32e497d6_https://webassembly.github.io/spec/core/syntax/modules.html#syntax-module": {"displayText":"imports","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"imports","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/modules.html#syntax-module"}, |
| "487b76fe_https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype": {"displayText":"f64","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"f64","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype"}, |
| "4a3b2658_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"ref.struct","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref.struct","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "55e2e3f1_https://tc39.github.io/ecma262/#sec-ecmascript-language-types-bigint-type": {"displayText":"BigInt","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"bigint","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-bigint-type"}, |
| "5e745a1a_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"v128.const","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"v128.const","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "60f810ad_https://webassembly.github.io/spec/core/syntax/types.html#syntax-tagtype": {"displayText":"tag type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"tag type","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-tagtype"}, |
| "6b9f083b_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"ref.null","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref.null","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "706a103c_https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype": {"displayText":"funcref","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"funcref","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype"}, |
| "71830f3f_https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed": {"displayText":"signed_32","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"signed_32","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed"}, |
| "74913b16_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"i64.const","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"i64.const","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "82295e1c_https://webassembly.github.io/spec/core/syntax/types.html#external-types": {"displayText":"global","export":true,"for_":["external-type"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"global","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "8390efce_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"WebAssembly value","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"webassembly value","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "866f3068_https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type": {"displayText":"is a Number","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"is a number","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type"}, |
| "87dd702b_https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed": {"displayText":"signed_31","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"signed_31","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed"}, |
| "8b33b0c0_https://webassembly.github.io/spec/core/syntax/values.html#syntax-float": {"displayText":"nan","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"nan","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "92193adb_https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype": {"displayText":"externref","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"externref","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype"}, |
| "a130a533_https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype": {"displayText":"ref","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype"}, |
| "a4646532_https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype": {"displayText":"f32","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"f32","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype"}, |
| "a5c9608b_https://webassembly.github.io/spec/core/syntax/types.html#external-types": {"displayText":"tag","export":true,"for_":["external-type","externtype"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"tag","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "b0f69a43_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"ref.exn","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref.exn","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "b73131e1_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"ref.array","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref.array","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "c77be4cb_https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval": {"displayText":"tag","export":true,"for_":["external value"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"tag","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval"}, |
| "cf0d7dd8_https://webassembly.github.io/spec/core/syntax/types.html#heap-types": {"displayText":"func","export":true,"for_":["heap-type"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"func","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#heap-types"}, |
| "db25377b_https://webassembly.github.io/spec/core/valid/modules.html#valid-module": {"displayText":"valid","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"valid","type":"dfn","url":"https://webassembly.github.io/spec/core/valid/modules.html#valid-module"}, |
| "dfe8fce9_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"f32.const","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"f32.const","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "e09fca85_https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands": {"displayText":"?","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"?","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands"}, |
| "e4515620_https://webassembly.github.io/spec/core/syntax/values.html#syntax-float": {"displayText":"signif","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"signif","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "e4a6ca14_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"ref.func","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref.func","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "e638887d_https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut": {"displayText":"var","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"var","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut"}, |
| "eb9c1b7f_https://webassembly.github.io/spec/core/syntax/types.html#external-types": {"displayText":"table","export":true,"for_":["external-type"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "eba518e9_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"ref.host","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref.host","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "f2c8868c_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"f64.const","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"f64.const","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "f3505c41_https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"ref.extern","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref.extern","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "f4809bf4_https://webassembly.github.io/spec/core/syntax/types.html#heap-types": {"displayText":"any","export":true,"for_":["heap-type"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"any","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#heap-types"}, |
| "fd8a763c_https://webassembly.github.io/spec/core/syntax/values.html#syntax-float": {"displayText":"\u2212\u221e","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"\u2212\u221e","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "https://encoding.spec.whatwg.org/#utf-8-decode-without-bom-or-fail": {"displayText":"UTF-8 decode without BOM or fail","export":true,"for_":[],"level":"1","normative":true,"shortname":"encoding","spec":"encoding","status":"current","text":"utf-8 decode without bom or fail","type":"dfn","url":"https://encoding.spec.whatwg.org/#utf-8-decode-without-bom-or-fail"}, |
| "https://heycam.github.io/webidl/#EnforceRange": {"displayText":"[EnforceRange]","export":true,"for_":[],"level":"","normative":true,"shortname":"webidl","spec":"webidl","status":"anchor-block","text":"[enforcerange]","type":"dfn","url":"https://heycam.github.io/webidl/#EnforceRange"}, |
| "https://heycam.github.io/webidl/#create-a-namespace-object": {"displayText":"create a namespace object","export":true,"for_":[],"level":"","normative":true,"shortname":"webidl","spec":"webidl","status":"anchor-block","text":"create a namespace object","type":"dfn","url":"https://heycam.github.io/webidl/#create-a-namespace-object"}, |
| "https://heycam.github.io/webidl/#idl-unsigned-long": {"displayText":"unsigned long","export":true,"for_":[],"level":"","normative":true,"shortname":"webidl","spec":"webidl","status":"anchor-block","text":"unsigned long","type":"dfn","url":"https://heycam.github.io/webidl/#idl-unsigned-long"}, |
| "https://heycam.github.io/webidl/#js-unsigned-long": {"displayText":"js-unsigned-long","export":true,"for_":[],"level":"","normative":true,"shortname":"webidl","spec":"webidl","status":"anchor-block","text":"js-unsigned-long","type":"dfn","url":"https://heycam.github.io/webidl/#js-unsigned-long"}, |
| "https://html.spec.whatwg.org/multipage/infrastructure.html#in-parallel": {"displayText":"in parallel","export":true,"for_":[],"level":"1","normative":true,"shortname":"html","spec":"html","status":"current","text":"in parallel","type":"dfn","url":"https://html.spec.whatwg.org/multipage/infrastructure.html#in-parallel"}, |
| "https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-a-callback": {"displayText":"clean up after running a callback","export":true,"for_":[],"level":"1","normative":true,"shortname":"html","spec":"html","status":"current","text":"clean up after running a callback","type":"dfn","url":"https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-a-callback"}, |
| "https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script": {"displayText":"clean up after running script","export":true,"for_":[],"level":"1","normative":true,"shortname":"html","spec":"html","status":"current","text":"clean up after running script","type":"dfn","url":"https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script"}, |
| "https://html.spec.whatwg.org/multipage/webappapis.html#concept-realm-settings-object": {"displayText":"settings object","export":true,"for_":["realm"],"level":"1","normative":true,"shortname":"html","spec":"html","status":"current","text":"settings object","type":"dfn","url":"https://html.spec.whatwg.org/multipage/webappapis.html#concept-realm-settings-object"}, |
| "https://html.spec.whatwg.org/multipage/webappapis.html#incumbent-settings-object": {"displayText":"incumbent settings object","export":true,"for_":[],"level":"1","normative":true,"shortname":"html","spec":"html","status":"current","text":"incumbent settings object","type":"dfn","url":"https://html.spec.whatwg.org/multipage/webappapis.html#incumbent-settings-object"}, |
| "https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-a-callback": {"displayText":"prepare to run a callback","export":true,"for_":[],"level":"1","normative":true,"shortname":"html","spec":"html","status":"current","text":"prepare to run a callback","type":"dfn","url":"https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-a-callback"}, |
| "https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-script": {"displayText":"prepare to run script","export":true,"for_":[],"level":"1","normative":true,"shortname":"html","spec":"html","status":"current","text":"prepare to run script","type":"dfn","url":"https://html.spec.whatwg.org/multipage/webappapis.html#prepare-to-run-script"}, |
| "https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task": {"displayText":"queue a task","export":true,"for_":[],"level":"1","normative":true,"shortname":"html","spec":"html","status":"current","text":"queue a task","type":"dfn","url":"https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task"}, |
| "https://html.spec.whatwg.org/multipage/webappapis.html#task-source": {"displayText":"task source","export":true,"for_":[],"level":"1","normative":true,"shortname":"html","spec":"html","status":"current","text":"task source","type":"dfn","url":"https://html.spec.whatwg.org/multipage/webappapis.html#task-source"}, |
| "https://infra.spec.whatwg.org/#iteration-continue": {"displayText":"continue","export":true,"for_":["iteration"],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"continue","type":"dfn","url":"https://infra.spec.whatwg.org/#iteration-continue"}, |
| "https://infra.spec.whatwg.org/#list": {"displayText":"list","export":true,"for_":[],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"list","type":"dfn","url":"https://infra.spec.whatwg.org/#list"}, |
| "https://infra.spec.whatwg.org/#list-append": {"displayText":"append","export":true,"for_":["list"],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"append","type":"dfn","url":"https://infra.spec.whatwg.org/#list-append"}, |
| "https://infra.spec.whatwg.org/#list-is-empty": {"displayText":"is empty","export":true,"for_":["list","stack","queue","set"],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"is empty","type":"dfn","url":"https://infra.spec.whatwg.org/#list-is-empty"}, |
| "https://infra.spec.whatwg.org/#list-iterate": {"displayText":"iterate","export":true,"for_":["list","set"],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"iterate","type":"dfn","url":"https://infra.spec.whatwg.org/#list-iterate"}, |
| "https://infra.spec.whatwg.org/#list-size": {"displayText":"size","export":true,"for_":["list","stack","queue","set"],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"size","type":"dfn","url":"https://infra.spec.whatwg.org/#list-size"}, |
| "https://infra.spec.whatwg.org/#map-exists": {"displayText":"exist","export":true,"for_":["map"],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"exist","type":"dfn","url":"https://infra.spec.whatwg.org/#map-exists"}, |
| "https://infra.spec.whatwg.org/#map-iterate": {"displayText":"iterate","export":true,"for_":["map"],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"iterate","type":"dfn","url":"https://infra.spec.whatwg.org/#map-iterate"}, |
| "https://infra.spec.whatwg.org/#map-set": {"displayText":"set","export":true,"for_":["map"],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"set","type":"dfn","url":"https://infra.spec.whatwg.org/#map-set"}, |
| "https://infra.spec.whatwg.org/#ordered-map": {"displayText":"ordered map","export":true,"for_":[],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"ordered map","type":"dfn","url":"https://infra.spec.whatwg.org/#ordered-map"}, |
| "https://infra.spec.whatwg.org/#string-length": {"displayText":"length","export":true,"for_":["string","JavaScript string","ASCII string","isomorphic string","scalar value string"],"level":"1","normative":true,"shortname":"infra","spec":"infra","status":"current","text":"length","type":"dfn","url":"https://infra.spec.whatwg.org/#string-length"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call": {"displayText":"Call","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"Call","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-call"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createarrayfromlist": {"displayText":"CreateArrayFromList","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"CreateArrayFromList","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createarrayfromlist"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createdataproperty": {"displayText":"CreateDataProperty","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"CreateDataProperty","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-createdataproperty"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-get-o-p": {"displayText":"Get","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"Get","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-get-o-p"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-getiteratorfrommethod": {"displayText":"GetIteratorFromMethod","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"GetIteratorFromMethod","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-getiteratorfrommethod"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-getmethod": {"displayText":"GetMethod","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"GetMethod","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-getmethod"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iscallable": {"displayText":"IsCallable","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"IsCallable","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iscallable"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iteratortolist": {"displayText":"IteratorToList","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"IteratorToList","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-iteratortolist"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-setintegritylevel": {"displayText":"SetIntegrityLevel","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"SetIntegrityLevel","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-setintegritylevel"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tobigint": {"displayText":"ToBigInt","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"ToBigInt","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tobigint"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tobigint64": {"displayText":"ToBigInt64","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"ToBigInt64","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tobigint64"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-toint32": {"displayText":"ToInt32","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"ToInt32","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-toint32"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tonumber": {"displayText":"ToNumber","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"ToNumber","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tonumber"}, |
| "https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tostring": {"displayText":"ToString","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"ToString","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tostring"}, |
| "https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-data-blocks": {"displayText":"Data Block","export":true,"for_":["ECMAScript"],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"data block","type":"dfn","url":"https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-data-blocks"}, |
| "https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-well-known-symbols": {"displayText":"%Symbol.iterator%","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"%Symbol.iterator%","type":"interface","url":"https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-well-known-symbols"}, |
| "https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#agent": {"displayText":"agent","export":true,"for_":["ECMAScript"],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"agent","type":"dfn","url":"https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#agent"}, |
| "https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-agent-clusters": {"displayText":"agent cluster","export":true,"for_":["ECMAScript"],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"agent cluster","type":"dfn","url":"https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-agent-clusters"}, |
| "https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent": {"displayText":"surrounding agent","export":true,"for_":["ECMAScript"],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"surrounding agent","type":"dfn","url":"https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#surrounding-agent"}, |
| "https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-createbuiltinfunction": {"displayText":"CreateBuiltinFunction","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"CreateBuiltinFunction","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-createbuiltinfunction"}, |
| "https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-definemethodproperty": {"displayText":"DefineMethodProperty","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"DefineMethodProperty","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-definemethodproperty"}, |
| "https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-ordinaryobjectcreate": {"displayText":"OrdinaryObjectCreate","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"OrdinaryObjectCreate","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-ordinaryobjectcreate"}, |
| "https://tc39.es/ecma262/multipage/structured-data.html#sec-detacharraybuffer": {"displayText":"DetachArrayBuffer","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"DetachArrayBuffer","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/structured-data.html#sec-detacharraybuffer"}, |
| "https://tc39.es/ecma262/multipage/structured-data.html#sec-numerictorawbytes": {"displayText":"NumericToRawBytes","export":true,"for_":[],"level":"1","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"current","text":"NumericToRawBytes","type":"abstract-op","url":"https://tc39.es/ecma262/multipage/structured-data.html#sec-numerictorawbytes"}, |
| "https://tc39.es/proposal-resizablearraybuffer/#sec-hostresizearraybuffer": {"displayText":"HostResizeArrayBuffer","export":true,"for_":[],"level":"","normative":true,"shortname":"resizablearraybuffer proposal","spec":"resizablearraybuffer proposal","status":"anchor-block","text":"hostresizearraybuffer","type":"dfn","url":"https://tc39.es/proposal-resizablearraybuffer/#sec-hostresizearraybuffer"}, |
| "https://tc39.es/proposal-resizablearraybuffer/#sec-isfixedarraybuffer": {"displayText":"IsFixedLengthArrayBuffer","export":true,"for_":[],"level":"","normative":true,"shortname":"resizablearraybuffer proposal","spec":"resizablearraybuffer proposal","status":"anchor-block","text":"isfixedlengtharraybuffer","type":"dfn","url":"https://tc39.es/proposal-resizablearraybuffer/#sec-isfixedarraybuffer"}, |
| "https://tc39.github.io/ecma262/#current-realm": {"displayText":"current Realm","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"current realm","type":"dfn","url":"https://tc39.github.io/ecma262/#current-realm"}, |
| "https://tc39.github.io/ecma262/#mathematical-value": {"displayText":"mathematical value","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"mathematical value","type":"dfn","url":"https://tc39.github.io/ecma262/#mathematical-value"}, |
| "https://tc39.github.io/ecma262/#sec-array-exotic-objects": {"displayText":"Array","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"array","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-array-exotic-objects"}, |
| "https://tc39.github.io/ecma262/#sec-arraybuffer-objects": {"displayText":"ArrayBuffer","export":true,"for_":["ECMAScript"],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"ArrayBuffer","type":"interface","url":"https://tc39.github.io/ecma262/#sec-arraybuffer-objects"}, |
| "https://tc39.github.io/ecma262/#sec-built-in-function-objects": {"displayText":"Built-in Function Objects","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"built-in function objects","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-built-in-function-objects"}, |
| "https://tc39.github.io/ecma262/#sec-ecmascript-language-types-bigint-type": {"displayText":"is not a BigInt","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"is not a bigint","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-bigint-type"}, |
| "https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type": {"displayText":"is not a Number","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"is not a number","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type"}, |
| "https://tc39.github.io/ecma262/#sec-ecmascript-language-types-string-type": {"displayText":"is not a String","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"is not a string","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-ecmascript-language-types-string-type"}, |
| "https://tc39.github.io/ecma262/#sec-islessthan": {"displayText":"IsLessThan","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"islessthan","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-islessthan"}, |
| "https://tc39.github.io/ecma262/#sec-isstrictlyequal": {"displayText":"IsStrictlyEqual","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"isstrictlyequal","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-isstrictlyequal"}, |
| "https://tc39.github.io/ecma262/#sec-makebasicobject": {"displayText":"MakeBasicObject","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"makebasicobject","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-makebasicobject"}, |
| "https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror": {"displayText":"RangeError","export":true,"for_":["ECMAScript"],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"RangeError","type":"exception","url":"https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-rangeerror"}, |
| "https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror": {"displayText":"TypeError","export":true,"for_":["ECMAScript"],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"TypeError","type":"exception","url":"https://tc39.github.io/ecma262/#sec-native-error-types-used-in-this-standard-typeerror"}, |
| "https://tc39.github.io/ecma262/#sec-nativeerror-object-structure": {"displayText":"NativeError Object Structure","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"nativeerror object structure","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-nativeerror-object-structure"}, |
| "https://tc39.github.io/ecma262/#sec-object-type": {"displayText":"is not an Object","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"is not an object","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-object-type"}, |
| "https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands": {"displayText":"!","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"!","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands"}, |
| "https://tc39.github.io/ecma262/#sec-samevalue": {"displayText":"SameValue","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"samevalue","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-samevalue"}, |
| "https://tc39.github.io/ecma262/#sec-string-object": {"displayText":"String","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"string","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-string-object"}, |
| "https://tc39.github.io/ecma262/#sec-string.fromcharcode": {"displayText":"String.fromCharCode","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"string.fromcharcode","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-string.fromcharcode"}, |
| "https://tc39.github.io/ecma262/#sec-string.fromcodepoint": {"displayText":"String.fromCodePoint","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"string.fromcodepoint","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-string.fromcodepoint"}, |
| "https://tc39.github.io/ecma262/#sec-string.prototype.charcodeat": {"displayText":"String.prototype.charCodeAt","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"string.prototype.charcodeat","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-string.prototype.charcodeat"}, |
| "https://tc39.github.io/ecma262/#sec-string.prototype.codepointat": {"displayText":"String.prototype.codePointAt","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"string.prototype.codepointat","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-string.prototype.codepointat"}, |
| "https://tc39.github.io/ecma262/#sec-string.prototype.concat": {"displayText":"String.prototype.concat","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"string.prototype.concat","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-string.prototype.concat"}, |
| "https://tc39.github.io/ecma262/#sec-string.prototype.substring": {"displayText":"String.prototype.substring","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"string.prototype.substring","type":"dfn","url":"https://tc39.github.io/ecma262/#sec-string.prototype.substring"}, |
| "https://tc39.github.io/ecma262/#ℝ": {"displayText":"\u211d","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"\u211d","type":"dfn","url":"https://tc39.github.io/ecma262/#\u211d"}, |
| "https://tc39.github.io/ecma262/#ℤ": {"displayText":"\u2124","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"\u2124","type":"dfn","url":"https://tc39.github.io/ecma262/#\u2124"}, |
| "https://tc39.github.io/ecma262/#𝔽": {"displayText":"\ud835\udd3d","export":true,"for_":[],"level":"","normative":true,"shortname":"ecmascript","spec":"ecmascript","status":"anchor-block","text":"\ud835\udd3d","type":"dfn","url":"https://tc39.github.io/ecma262/#\ud835\udd3d"}, |
| "https://webassembly.github.io/spec/core/#appending/embedding.html": {"displayText":"embedding interface","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"embedding interface","type":"dfn","url":"https://webassembly.github.io/spec/core/#appending/embedding.html"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error": {"displayText":"error","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"error","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-error"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-alloc": {"displayText":"exn_alloc","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"exn_alloc","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-alloc"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-read": {"displayText":"exn_read","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"exn_read","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-read"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-tag": {"displayText":"exn_tag","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"exn_tag","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-exn-tag"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-alloc": {"displayText":"func_alloc","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"func_alloc","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-alloc"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-invoke": {"displayText":"func_invoke","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"func_invoke","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-invoke"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-type": {"displayText":"func_type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"func_type","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-func-type"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-alloc": {"displayText":"global_alloc","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"global_alloc","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-alloc"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-read": {"displayText":"global_read","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"global_read","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-read"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-type": {"displayText":"global_type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"global_type","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-type"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-write": {"displayText":"global_write","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"global_write","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-global-write"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-instance-export": {"displayText":"instance_export","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"instance_export","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-instance-export"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-externtype": {"displayText":"match_externtype","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"match_externtype","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-externtype"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-valtype": {"displayText":"match_valtype","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"match_valtype","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-match-valtype"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-alloc": {"displayText":"mem_alloc","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"mem_alloc","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-alloc"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-grow": {"displayText":"mem_grow","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"mem_grow","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-grow"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-size": {"displayText":"mem_size","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"mem_size","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-size"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-type": {"displayText":"mem_type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"mem_type","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-mem-type"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-decode": {"displayText":"module_decode","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"module_decode","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-decode"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-exports": {"displayText":"module_exports","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"module_exports","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-exports"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-imports": {"displayText":"module_imports","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"module_imports","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-imports"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-instantiate": {"displayText":"module_instantiate","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"module_instantiate","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-instantiate"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-validate": {"displayText":"module_validate","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"module_validate","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-module-validate"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-ref-type": {"displayText":"ref_type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"ref_type","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-ref-type"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-store-init": {"displayText":"store_init","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"store_init","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-store-init"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-alloc": {"displayText":"table_alloc","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table_alloc","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-alloc"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-grow": {"displayText":"table_grow","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table_grow","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-grow"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-read": {"displayText":"table_read","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table_read","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-read"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-size": {"displayText":"table_size","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table_size","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-size"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-type": {"displayText":"table_type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table_type","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-type"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-write": {"displayText":"table_write","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table_write","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-table-write"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-tag-type": {"displayText":"tag_type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"tag_type","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-tag-type"}, |
| "https://webassembly.github.io/spec/core/appendix/embedding.html#embed-val-default": {"displayText":"val_default","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"val_default","type":"dfn","url":"https://webassembly.github.io/spec/core/appendix/embedding.html#embed-val-default"}, |
| "https://webassembly.github.io/spec/core/binary/modules.html#binary-customsec": {"displayText":"customsec","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"customsec","type":"dfn","url":"https://webassembly.github.io/spec/core/binary/modules.html#binary-customsec"}, |
| "https://webassembly.github.io/spec/core/binary/modules.html#binary-module": {"displayText":"module grammar","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"module grammar","type":"dfn","url":"https://webassembly.github.io/spec/core/binary/modules.html#binary-module"}, |
| "https://webassembly.github.io/spec/core/binary/modules.html#custom-section": {"displayText":"custom section","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"custom section","type":"dfn","url":"https://webassembly.github.io/spec/core/binary/modules.html#custom-section"}, |
| "https://webassembly.github.io/spec/core/exec/conventions.html#exec-notation-textual": {"displayText":"current frame","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"current frame","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/conventions.html#exec-notation-textual"}, |
| "https://webassembly.github.io/spec/core/exec/instructions.html#exec-memory-grow": {"displayText":"memory.grow","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"memory.grow","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/instructions.html#exec-memory-grow"}, |
| "https://webassembly.github.io/spec/core/exec/instructions.html#exec-throw-ref": {"displayText":"throw_ref","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"throw_ref","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/instructions.html#exec-throw-ref"}, |
| "https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed": {"displayText":"signed_64","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"signed_64","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/numerics.html#aux-signed"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#addresses": {"displayText":"address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#addresses"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#global-instances": {"displayText":"global instance","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"global instance","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#global-instances"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#memory-instances": {"displayText":"memory instance","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"memory instance","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#memory-instances"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#page-size": {"displayText":"page size","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"page size","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#page-size"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-arrayaddr": {"displayText":"array address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"array address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-arrayaddr"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-exnaddr": {"displayText":"exception address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"exception address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-exnaddr"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval": {"displayText":"external value","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"external value","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-externval"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-frame": {"displayText":"module","export":true,"for_":["frame"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"module","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-frame"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-funcaddr": {"displayText":"function address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"function address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-funcaddr"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-globaladdr": {"displayText":"global address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"global address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-globaladdr"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostaddr": {"displayText":"host address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"host address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostaddr"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostfunc": {"displayText":"host function","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"host function","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-hostfunc"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr": {"displayText":"memory address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"memory address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-memaddr"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-moduleinst": {"displayText":"memaddrs","export":true,"for_":["moduleinst"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"memaddrs","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-moduleinst"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-store": {"displayText":"store","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"store","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-store"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-structaddr": {"displayText":"struct address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"struct address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-structaddr"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tableaddr": {"displayText":"table address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tableaddr"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tagaddr": {"displayText":"tag address","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"tag address","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-tagaddr"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap": {"displayText":"trap","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"trap","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#syntax-trap"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#table-instances": {"displayText":"table instance","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table instance","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#table-instances"}, |
| "https://webassembly.github.io/spec/core/exec/runtime.html#values": {"displayText":"i32.const","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"i32.const","type":"dfn","url":"https://webassembly.github.io/spec/core/exec/runtime.html#values"}, |
| "https://webassembly.github.io/spec/core/intro/introduction.html#scope": {"displayText":"scope","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"scope","type":"dfn","url":"https://webassembly.github.io/spec/core/intro/introduction.html#scope"}, |
| "https://webassembly.github.io/spec/core/syntax/conventions.html#grammar-notation": {"displayText":"sequence","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"sequence","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/conventions.html#grammar-notation"}, |
| "https://webassembly.github.io/spec/core/syntax/modules.html#syntax-import": {"displayText":"import","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"import","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/modules.html#syntax-import"}, |
| "https://webassembly.github.io/spec/core/syntax/modules.html#syntax-module": {"displayText":"module","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"module","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/modules.html#syntax-module"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#external-types": {"displayText":"func","export":true,"for_":["external-type"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"func","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#external-types"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#heap-types": {"displayText":"extern","export":true,"for_":["heap-type"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"extern","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#heap-types"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#syntax-addrtype": {"displayText":"address type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"address type","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-addrtype"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#syntax-limits": {"displayText":"limits","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"limits","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-limits"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#syntax-memtype": {"displayText":"memory type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"memory type","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-memtype"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut": {"displayText":"const","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"const","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-mut"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype": {"displayText":"i64","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"i64","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-numtype"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype": {"displayText":"exnref","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"exnref","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-reftype"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#syntax-tabletype": {"displayText":"table type","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"table type","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-tabletype"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#syntax-tagtype": {"displayText":"exception","export":true,"for_":["tagtype/attribute"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"exception","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#syntax-tagtype"}, |
| "https://webassembly.github.io/spec/core/syntax/types.html#vector-types": {"displayText":"v128","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"v128","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/types.html#vector-types"}, |
| "https://webassembly.github.io/spec/core/syntax/values.html#syntax-float": {"displayText":"+\u221e","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"+\u221e","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-float"}, |
| "https://webassembly.github.io/spec/core/syntax/values.html#syntax-int": {"displayText":"u64","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"u64","type":"dfn","url":"https://webassembly.github.io/spec/core/syntax/values.html#syntax-int"}, |
| "https://webassembly.github.io/spec/core/valid/matching.html#match-reftype": {"displayText":"reftype","export":true,"for_":["matches"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"reftype","type":"dfn","url":"https://webassembly.github.io/spec/core/valid/matching.html#match-reftype"}, |
| "https://webassembly.github.io/spec/core/valid/matching.html#match-valtype": {"displayText":"valtype","export":true,"for_":["matches"],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"valtype","type":"dfn","url":"https://webassembly.github.io/spec/core/valid/matching.html#match-valtype"}, |
| "https://webassembly.github.io/spec/core/valid/modules.html#valid-module": {"displayText":"WebAssembly module validation","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"webassembly module validation","type":"dfn","url":"https://webassembly.github.io/spec/core/valid/modules.html#valid-module"}, |
| "https://webassembly.github.io/spec/core/valid/types.html#valid-memtype": {"displayText":"valid memtype","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"valid memtype","type":"dfn","url":"https://webassembly.github.io/spec/core/valid/types.html#valid-memtype"}, |
| "https://webassembly.github.io/spec/core/valid/types.html#valid-tabletype": {"displayText":"valid tabletype","export":true,"for_":[],"level":"","normative":true,"shortname":"webassembly","spec":"webassembly","status":"anchor-block","text":"valid tabletype","type":"dfn","url":"https://webassembly.github.io/spec/core/valid/types.html#valid-tabletype"}, |
| "https://webidl.spec.whatwg.org/#BufferSource": {"displayText":"BufferSource","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"BufferSource","type":"typedef","url":"https://webidl.spec.whatwg.org/#BufferSource"}, |
| "https://webidl.spec.whatwg.org/#EnforceRange": {"displayText":"EnforceRange","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"EnforceRange","type":"extended-attribute","url":"https://webidl.spec.whatwg.org/#EnforceRange"}, |
| "https://webidl.spec.whatwg.org/#Exposed": {"displayText":"Exposed","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"Exposed","type":"extended-attribute","url":"https://webidl.spec.whatwg.org/#Exposed"}, |
| "https://webidl.spec.whatwg.org/#LegacyNamespace": {"displayText":"LegacyNamespace","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"LegacyNamespace","type":"extended-attribute","url":"https://webidl.spec.whatwg.org/#LegacyNamespace"}, |
| "https://webidl.spec.whatwg.org/#a-new-promise": {"displayText":"a new promise","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"a new promise","type":"dfn","url":"https://webidl.spec.whatwg.org/#a-new-promise"}, |
| "https://webidl.spec.whatwg.org/#abstract-opdef-converttoint": {"displayText":"ConvertToInt","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"ConvertToInt","type":"abstract-op","url":"https://webidl.spec.whatwg.org/#abstract-opdef-converttoint"}, |
| "https://webidl.spec.whatwg.org/#dfn-associated-realm": {"displayText":"associated realm","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"associated realm","type":"dfn","url":"https://webidl.spec.whatwg.org/#dfn-associated-realm"}, |
| "https://webidl.spec.whatwg.org/#dfn-get-buffer-source-copy": {"displayText":"get a copy of the buffer source","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"get a copy of the buffer source","type":"dfn","url":"https://webidl.spec.whatwg.org/#dfn-get-buffer-source-copy"}, |
| "https://webidl.spec.whatwg.org/#dfn-namespace-object": {"displayText":"namespace object","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"namespace object","type":"dfn","url":"https://webidl.spec.whatwg.org/#dfn-namespace-object"}, |
| "https://webidl.spec.whatwg.org/#dfn-throw": {"displayText":"throw","export":true,"for_":["exception"],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"throw","type":"dfn","url":"https://webidl.spec.whatwg.org/#dfn-throw"}, |
| "https://webidl.spec.whatwg.org/#idl-DOMString": {"displayText":"DOMString","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"DOMString","type":"interface","url":"https://webidl.spec.whatwg.org/#idl-DOMString"}, |
| "https://webidl.spec.whatwg.org/#idl-USVString": {"displayText":"USVString","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"USVString","type":"interface","url":"https://webidl.spec.whatwg.org/#idl-USVString"}, |
| "https://webidl.spec.whatwg.org/#idl-any": {"displayText":"any","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"any","type":"interface","url":"https://webidl.spec.whatwg.org/#idl-any"}, |
| "https://webidl.spec.whatwg.org/#idl-boolean": {"displayText":"boolean","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"boolean","type":"interface","url":"https://webidl.spec.whatwg.org/#idl-boolean"}, |
| "https://webidl.spec.whatwg.org/#idl-object": {"displayText":"object","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"object","type":"interface","url":"https://webidl.spec.whatwg.org/#idl-object"}, |
| "https://webidl.spec.whatwg.org/#idl-promise": {"displayText":"Promise","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"Promise","type":"interface","url":"https://webidl.spec.whatwg.org/#idl-promise"}, |
| "https://webidl.spec.whatwg.org/#idl-sequence": {"displayText":"sequence","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"sequence","type":"dfn","url":"https://webidl.spec.whatwg.org/#idl-sequence"}, |
| "https://webidl.spec.whatwg.org/#idl-undefined": {"displayText":"undefined","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"undefined","type":"interface","url":"https://webidl.spec.whatwg.org/#idl-undefined"}, |
| "https://webidl.spec.whatwg.org/#idl-unsigned-long": {"displayText":"unsigned long","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"unsigned long","type":"interface","url":"https://webidl.spec.whatwg.org/#idl-unsigned-long"}, |
| "https://webidl.spec.whatwg.org/#implements": {"displayText":"implements","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"implements","type":"dfn","url":"https://webidl.spec.whatwg.org/#implements"}, |
| "https://webidl.spec.whatwg.org/#new": {"displayText":"new","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"new","type":"dfn","url":"https://webidl.spec.whatwg.org/#new"}, |
| "https://webidl.spec.whatwg.org/#reject": {"displayText":"reject","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"reject","type":"dfn","url":"https://webidl.spec.whatwg.org/#reject"}, |
| "https://webidl.spec.whatwg.org/#resolve": {"displayText":"resolve","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"resolve","type":"dfn","url":"https://webidl.spec.whatwg.org/#resolve"}, |
| "https://webidl.spec.whatwg.org/#upon-fulfillment": {"displayText":"upon fulfillment","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"upon fulfillment","type":"dfn","url":"https://webidl.spec.whatwg.org/#upon-fulfillment"}, |
| "https://webidl.spec.whatwg.org/#upon-rejection": {"displayText":"upon rejection","export":true,"for_":[],"level":"1","normative":true,"shortname":"webidl","spec":"webidl","status":"current","text":"upon rejection","type":"dfn","url":"https://webidl.spec.whatwg.org/#upon-rejection"}, |
| }; |
| |
| function mkRefHint(link, ref) { |
| const linkText = link.textContent; |
| let dfnTextElements = ''; |
| if (ref.displayText.toLowerCase() != linkText.toLowerCase()) { |
| // Give the original term if it's being displayed in a different way. |
| // But allow casing differences, they're insignificant. |
| dfnTextElements = |
| mk.li({}, |
| mk.b({}, "Term: "), |
| mk.span({}, ref.displayText) |
| ); |
| } |
| const forList = ref.for_; |
| let forListElements; |
| if(forList.length == 0) { |
| forListElements = []; |
| } else if(forList.length == 1) { |
| forListElements = mk.li({}, |
| mk.b({}, "For: "), |
| mk.span({}, forList[0]), |
| ); |
| } else { |
| forListElements = mk.li({}, |
| mk.b({}, "For: "), |
| mk.ul({}, |
| ...forList.map(forItem => |
| mk.li({}, |
| mk.span({}, forItem) |
| ), |
| ), |
| ), |
| ); |
| } |
| const url = ref.url; |
| const safeUrl = encodeURIComponent(url); |
| const hintPanel = mk.aside({ |
| class: "ref-hint", |
| id: `ref-hint-for-${safeUrl}`, |
| "data-for": url, |
| "aria-labelled-by": `ref-hint-for-${safeUrl}`, |
| }, |
| mk.ul({}, |
| dfnTextElements, |
| mk.li({}, |
| mk.b({}, "URL: "), |
| mk.a({ href: url, class: "ref" }, url), |
| ), |
| mk.li({}, |
| mk.b({}, "Type: "), |
| mk.span({}, `${ref.type}`), |
| ), |
| mk.li({}, |
| mk.b({}, "Spec: "), |
| mk.span({}, `${ref.spec ? ref.spec : ''}`), |
| ), |
| forListElements |
| ), |
| ); |
| hintPanel.forLink = link; |
| setupRefHintEventListeners(link, hintPanel); |
| return hintPanel; |
| } |
| |
| function hideAllRefHints() { |
| queryAll(".ref-hint").forEach(el=>hideRefHint(el)); |
| } |
| |
| function hideRefHint(refHint) { |
| const link = refHint.forLink; |
| link.setAttribute("aria-expanded", "false"); |
| if(refHint.teardownEventListeners) { |
| refHint.teardownEventListeners(); |
| } |
| refHint.remove(); |
| } |
| |
| function showRefHint(link) { |
| if(link.classList.contains("dfn-link")) return; |
| const url = link.getAttribute("href"); |
| const refHintKey = link.getAttribute("data-refhint-key"); |
| let key = url; |
| if(refHintKey) { |
| key = refHintKey + "_" + url; |
| } |
| const ref = refsData[key]; |
| if(!ref) return; |
| |
| hideAllRefHints(); // Only display one at this time. |
| |
| const refHint = mkRefHint(link, ref); |
| append(document.body, refHint); |
| link.setAttribute("aria-expanded", "true"); |
| positionRefHint(refHint); |
| } |
| |
| function setupRefHintEventListeners(link, refHint) { |
| if (refHint.teardownEventListeners) return; |
| // Add event handlers to hide the refHint after the user moves away |
| // from both the link and refHint, if not hovering either within one second. |
| let timeout = null; |
| const startHidingRefHint = (event) => { |
| if (timeout) { |
| clearTimeout(timeout); |
| } |
| timeout = setTimeout(() => { |
| hideRefHint(refHint); |
| }, 1000); |
| } |
| const resetHidingRefHint = (event) => { |
| if (timeout) clearTimeout(timeout); |
| timeout = null; |
| }; |
| link.addEventListener("mouseleave", startHidingRefHint); |
| link.addEventListener("mouseenter", resetHidingRefHint); |
| link.addEventListener("blur", startHidingRefHint); |
| link.addEventListener("focus", resetHidingRefHint); |
| refHint.addEventListener("mouseleave", startHidingRefHint); |
| refHint.addEventListener("mouseenter", resetHidingRefHint); |
| refHint.addEventListener("blur", startHidingRefHint); |
| refHint.addEventListener("focus", resetHidingRefHint); |
| |
| refHint.teardownEventListeners = () => { |
| // remove event listeners |
| resetHidingRefHint(); |
| link.removeEventListener("mouseleave", startHidingRefHint); |
| link.removeEventListener("mouseenter", resetHidingRefHint); |
| link.removeEventListener("blur", startHidingRefHint); |
| link.removeEventListener("focus", resetHidingRefHint); |
| refHint.removeEventListener("mouseleave", startHidingRefHint); |
| refHint.removeEventListener("mouseenter", resetHidingRefHint); |
| refHint.removeEventListener("blur", startHidingRefHint); |
| refHint.removeEventListener("focus", resetHidingRefHint); |
| }; |
| } |
| |
| function positionRefHint(refHint) { |
| const link = refHint.forLink; |
| const linkPos = getBounds(link); |
| refHint.style.top = linkPos.bottom + "px"; |
| refHint.style.left = linkPos.left + "px"; |
| |
| const panelPos = refHint.getBoundingClientRect(); |
| const panelMargin = 8; |
| const maxRight = document.body.parentNode.clientWidth - panelMargin; |
| if (panelPos.right > maxRight) { |
| const overflowAmount = panelPos.right - maxRight; |
| const newLeft = Math.max(panelMargin, linkPos.left - overflowAmount); |
| refHint.style.left = newLeft + "px"; |
| } |
| } |
| |
| // TODO: shared util |
| // Returns the root-level absolute position {left and top} of element. |
| function getBounds(el, relativeTo=document.body) { |
| const relativeRect = relativeTo.getBoundingClientRect(); |
| const elRect = el.getBoundingClientRect(); |
| const top = elRect.top - relativeRect.top; |
| const left = elRect.left - relativeRect.left; |
| return { |
| top, |
| left, |
| bottom: top + elRect.height, |
| right: left + elRect.width, |
| } |
| } |
| |
| function showRefHintListener(e) { |
| // If the target isn't in a link (or is a link), |
| // just ignore it. |
| let link = e.target.closest("a"); |
| if(!link) return; |
| |
| // If the target is in a ref-hint panel |
| // (aka a link in the already-open one), |
| // also just ignore it. |
| if(link.closest(".ref-hint")) return; |
| |
| // Otherwise, show the panel for the link. |
| showRefHint(link); |
| } |
| |
| function hideAllHintsListener(e) { |
| // If the click is inside a ref-hint panel, ignore it. |
| if(e.target.closest(".ref-hint")) return; |
| // Otherwise, close all the current panels. |
| hideAllRefHints(); |
| } |
| |
| document.addEventListener("DOMContentLoaded", () => { |
| document.body.addEventListener("mousedown", showRefHintListener); |
| document.body.addEventListener("focus", showRefHintListener); |
| |
| document.body.addEventListener("click", hideAllHintsListener); |
| }); |
| |
| window.addEventListener("resize", () => { |
| // Hide any open ref hint. |
| hideAllRefHints(); |
| }); |
| } |
| </script> |
| <script>/* Boilerplate: script-var-click-highlighting */ |
| "use strict"; |
| { |
| /* |
| Color-choosing design: |
| |
| * Colors are ordered by goodness. |
| * On clicking a var, give it the earliest color |
| with the lowest usage in the algorithm. |
| * On re-clicking, re-use the var's most recent color |
| if that's not currently being used elsewhere. |
| */ |
| |
| const COLOR_COUNT = 7; |
| |
| document.addEventListener("click", e=>{ |
| if(e.target.nodeName == "VAR") { |
| highlightSameAlgoVars(e.target); |
| } |
| }); |
| |
| function highlightSameAlgoVars(v) { |
| // Find the algorithm container. |
| let algoContainer = findAlgoContainer(v); |
| |
| // Not highlighting document-global vars, |
| // too likely to be unrelated. |
| if(algoContainer == null) return; |
| |
| const varName = nameFromVar(v); |
| if(!v.hasAttribute("data-var-color")) { |
| const newColor = chooseHighlightColor(algoContainer, v); |
| for(const el of algoContainer.querySelectorAll("var")) { |
| if(nameFromVar(el) == varName) { |
| el.setAttribute("data-var-color", newColor); |
| el.setAttribute("data-var-last-color", newColor); |
| } |
| } |
| } else { |
| for(const el of algoContainer.querySelectorAll("var")) { |
| if(nameFromVar(el) == varName) { |
| el.removeAttribute("data-var-color"); |
| } |
| } |
| } |
| } |
| function findAlgoContainer(el) { |
| while(el != document.body) { |
| if(el.hasAttribute("data-algorithm")) return el; |
| el = el.parentNode; |
| } |
| return null; |
| } |
| function nameFromVar(el) { |
| return el.textContent.replace(/(\s|\xa0)+/g, " ").trim(); |
| } |
| function colorCountsFromContainer(container) { |
| const namesFromColor = Array.from({length:COLOR_COUNT}, x=>new Set()); |
| for(let v of container.querySelectorAll("var[data-var-color]")) { |
| let color = +v.getAttribute("data-var-color"); |
| namesFromColor[color].add(nameFromVar(v)); |
| } |
| |
| return namesFromColor.map(x=>x.size); |
| } |
| function leastUsedColor(colors) { |
| // Find the earliest color with the lowest count. |
| let minCount = Infinity; |
| let minColor = null; |
| for(var i = 0; i < colors.length; i++) { |
| if(colors[i] < minCount) { |
| minColor = i; |
| minCount = colors[i]; |
| } |
| } |
| return minColor; |
| } |
| function chooseHighlightColor(container, v) { |
| const colorCounts = colorCountsFromContainer(container); |
| if(v.hasAttribute("data-var-last-color")) { |
| let color = +v.getAttribute("data-var-last-color"); |
| if(colorCounts[color] == 0) return color; |
| } |
| return leastUsedColor(colorCounts); |
| } |
| } |
| </script> |