about summary refs log tree commit diff stats
path: root/html/081table.subx.html
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-01-27 00:39:46 -0800
committerKartik Agaram <vc@akkartik.com>2020-01-27 00:39:46 -0800
commit2104d1a75b76dbffc0b15a96c98d94e7a16594e8 (patch)
tree2a839b86e76431a9bbe4bf155f7411171a26d7f8 /html/081table.subx.html
parent71eb22a5bf94f5fa0a3c95212450e3c6a1a6a990 (diff)
downloadmu-2104d1a75b76dbffc0b15a96c98d94e7a16594e8.tar.gz
5925
Diffstat (limited to 'html/081table.subx.html')
-rw-r--r--html/081table.subx.html90
1 files changed, 45 insertions, 45 deletions
diff --git a/html/081table.subx.html b/html/081table.subx.html
index 6d456997..673cd16e 100644
--- a/html/081table.subx.html
+++ b/html/081table.subx.html
@@ -85,7 +85,7 @@ if ('onhashchange' in window) {
 <span id="L24" class="LineNr">  24 </span>
 <span id="L25" class="LineNr">  25 </span><span class="subxComment"># if no row is found, abort</span>
 <span id="L26" class="LineNr">  26 </span><span class="subxComment"># type string_key = (addr array byte)</span>
-<span id="L27" class="LineNr">  27 </span><span class="subxFunction">get</span>:  <span class="subxComment"># table : (addr stream {string_key, T}), key : string_key, row-size : int, abort-message-prefix : (addr array byte) -&gt; eax : (addr T)</span>
+<span id="L27" class="LineNr">  27 </span><span class="subxFunction">get</span>:  <span class="subxComment"># table: (addr stream {string_key, T}), key: string_key, row-size: int, abort-message-prefix: (addr array byte) -&gt; eax: (addr T)</span>
 <span id="L28" class="LineNr">  28 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L29" class="LineNr">  29 </span>    <span class="subxComment">#   curr = table-&gt;data</span>
 <span id="L30" class="LineNr">  30 </span>    <span class="subxComment">#   max = &amp;table-&gt;data[table-&gt;write]</span>
@@ -104,9 +104,9 @@ if ('onhashchange' in window) {
 <span id="L43" class="LineNr">  43 </span>    56/push-esi
 <span id="L44" class="LineNr">  44 </span>    <span class="subxComment"># esi = table</span>
 <span id="L45" class="LineNr">  45 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
-<span id="L46" class="LineNr">  46 </span>    <span class="subxComment"># var curr/ecx : (addr string_key) = table-&gt;data</span>
+<span id="L46" class="LineNr">  46 </span>    <span class="subxComment"># var curr/ecx: (addr string_key) = table-&gt;data</span>
 <span id="L47" class="LineNr">  47 </span>    8d/copy-address                 1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+12 to ecx</span>
-<span id="L48" class="LineNr">  48 </span>    <span class="subxComment"># var max/edx : (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
+<span id="L48" class="LineNr">  48 </span>    <span class="subxComment"># var max/edx: (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
 <span id="L49" class="LineNr">  49 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
 <span id="L50" class="LineNr">  50 </span>    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx  <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx+edx to edx</span>
 <span id="L51" class="LineNr">  51 </span><span class="Constant">$get:search-loop</span>:
@@ -186,7 +186,7 @@ if ('onhashchange' in window) {
 <span id="L125" class="LineNr"> 125 </span>    55/push-ebp
 <span id="L126" class="LineNr"> 126 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
 <span id="L127" class="LineNr"> 127 </span>    <span class="subxH1Comment"># - setup: create a table with a couple of keys</span>
-<span id="L128" class="LineNr"> 128 </span>    <span class="subxComment"># var table/ecx : (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
+<span id="L128" class="LineNr"> 128 </span>    <span class="subxComment"># var table/ecx: (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
 <span id="L129" class="LineNr"> 129 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># subtract from esp</span>
 <span id="L130" class="LineNr"> 130 </span>    68/push  0x10/imm32/length
 <span id="L131" class="LineNr"> 131 </span>    68/push  0/imm32/read
@@ -259,7 +259,7 @@ if ('onhashchange' in window) {
 <span id="L198" class="LineNr"> 198 </span>    c3/return
 <span id="L199" class="LineNr"> 199 </span>
 <span id="L200" class="LineNr"> 200 </span><span class="subxComment"># if no row is found, abort</span>
-<span id="L201" class="LineNr"> 201 </span><span class="subxFunction">get-slice</span>:  <span class="subxComment"># table : (addr stream {string_key, T}), key : (addr slice), row-size : int, abort-message-prefix : (addr array byte) -&gt; eax : (addr T)</span>
+<span id="L201" class="LineNr"> 201 </span><span class="subxFunction">get-slice</span>:  <span class="subxComment"># table: (addr stream {string_key, T}), key: (addr slice), row-size: int, abort-message-prefix: (addr array byte) -&gt; eax: (addr T)</span>
 <span id="L202" class="LineNr"> 202 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L203" class="LineNr"> 203 </span>    <span class="subxComment">#   curr = table-&gt;data</span>
 <span id="L204" class="LineNr"> 204 </span>    <span class="subxComment">#   max = &amp;table-&gt;data[table-&gt;write]</span>
@@ -278,9 +278,9 @@ if ('onhashchange' in window) {
 <span id="L217" class="LineNr"> 217 </span>    56/push-esi
 <span id="L218" class="LineNr"> 218 </span>    <span class="subxComment"># esi = table</span>
 <span id="L219" class="LineNr"> 219 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
-<span id="L220" class="LineNr"> 220 </span>    <span class="subxComment"># var curr/ecx : (addr string_key) = table-&gt;data</span>
+<span id="L220" class="LineNr"> 220 </span>    <span class="subxComment"># var curr/ecx: (addr string_key) = table-&gt;data</span>
 <span id="L221" class="LineNr"> 221 </span>    8d/copy-address                 1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+12 to ecx</span>
-<span id="L222" class="LineNr"> 222 </span>    <span class="subxComment"># var max/edx : (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
+<span id="L222" class="LineNr"> 222 </span>    <span class="subxComment"># var max/edx: (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
 <span id="L223" class="LineNr"> 223 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
 <span id="L224" class="LineNr"> 224 </span>    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx  <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx+edx to edx</span>
 <span id="L225" class="LineNr"> 225 </span><span class="Constant">$get-slice:search-loop</span>:
@@ -367,7 +367,7 @@ if ('onhashchange' in window) {
 <span id="L306" class="LineNr"> 306 </span>    55/push-ebp
 <span id="L307" class="LineNr"> 307 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
 <span id="L308" class="LineNr"> 308 </span>    <span class="subxH1Comment"># - setup: create a table with a couple of keys</span>
-<span id="L309" class="LineNr"> 309 </span>    <span class="subxComment"># var table/ecx : (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
+<span id="L309" class="LineNr"> 309 </span>    <span class="subxComment"># var table/ecx: (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
 <span id="L310" class="LineNr"> 310 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># subtract from esp</span>
 <span id="L311" class="LineNr"> 311 </span>    68/push  0x10/imm32/length
 <span id="L312" class="LineNr"> 312 </span>    68/push  0/imm32/read
@@ -397,7 +397,7 @@ if ('onhashchange' in window) {
 <span id="L336" class="LineNr"> 336 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to edx</span>
 <span id="L337" class="LineNr"> 337 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx  <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+edx+4 to edx</span>
 <span id="L338" class="LineNr"> 338 </span>    05/add-to-eax  4/imm32
-<span id="L339" class="LineNr"> 339 </span>    <span class="subxComment"># var slice/edx : slice = {eax, edx}</span>
+<span id="L339" class="LineNr"> 339 </span>    <span class="subxComment"># var slice/edx: slice = {eax, edx}</span>
 <span id="L340" class="LineNr"> 340 </span>    52/push-edx
 <span id="L341" class="LineNr"> 341 </span>    50/push-eax
 <span id="L342" class="LineNr"> 342 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
@@ -427,7 +427,7 @@ if ('onhashchange' in window) {
 <span id="L366" class="LineNr"> 366 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to edx</span>
 <span id="L367" class="LineNr"> 367 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx  <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+edx+4 to edx</span>
 <span id="L368" class="LineNr"> 368 </span>    05/add-to-eax  4/imm32
-<span id="L369" class="LineNr"> 369 </span>    <span class="subxComment"># var slice/edx : slice = {eax, edx}</span>
+<span id="L369" class="LineNr"> 369 </span>    <span class="subxComment"># var slice/edx: slice = {eax, edx}</span>
 <span id="L370" class="LineNr"> 370 </span>    52/push-edx
 <span id="L371" class="LineNr"> 371 </span>    50/push-eax
 <span id="L372" class="LineNr"> 372 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
@@ -462,7 +462,7 @@ if ('onhashchange' in window) {
 <span id="L401" class="LineNr"> 401 </span><span class="subxComment"># return the address of the value</span>
 <span id="L402" class="LineNr"> 402 </span><span class="subxComment"># Beware: assume keys are immutable; they're inserted by reference</span>
 <span id="L403" class="LineNr"> 403 </span><span class="subxComment"># TODO: pass in an allocation descriptor</span>
-<span id="L404" class="LineNr"> 404 </span><span class="subxFunction">get-or-insert</span>:  <span class="subxComment"># table : (addr stream {string_key, T}), key : string_key, row-size : int -&gt; eax : (addr T)</span>
+<span id="L404" class="LineNr"> 404 </span><span class="subxFunction">get-or-insert</span>:  <span class="subxComment"># table: (addr stream {string_key, T}), key: string_key, row-size: int -&gt; eax: (addr T)</span>
 <span id="L405" class="LineNr"> 405 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L406" class="LineNr"> 406 </span>    <span class="subxComment">#   curr = table-&gt;data</span>
 <span id="L407" class="LineNr"> 407 </span>    <span class="subxComment">#   max = &amp;table-&gt;data[table-&gt;write]</span>
@@ -486,9 +486,9 @@ if ('onhashchange' in window) {
 <span id="L425" class="LineNr"> 425 </span>    56/push-esi
 <span id="L426" class="LineNr"> 426 </span>    <span class="subxComment"># esi = table</span>
 <span id="L427" class="LineNr"> 427 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
-<span id="L428" class="LineNr"> 428 </span>    <span class="subxComment"># var curr/ecx : (addr string_key) = table-&gt;data</span>
+<span id="L428" class="LineNr"> 428 </span>    <span class="subxComment"># var curr/ecx: (addr string_key) = table-&gt;data</span>
 <span id="L429" class="LineNr"> 429 </span>    8d/copy-address                 1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+12 to ecx</span>
-<span id="L430" class="LineNr"> 430 </span>    <span class="subxComment"># var max/edx : (addr string_key) = &amp;table-&gt;data[table-&gt;write]</span>
+<span id="L430" class="LineNr"> 430 </span>    <span class="subxComment"># var max/edx: (addr string_key) = &amp;table-&gt;data[table-&gt;write]</span>
 <span id="L431" class="LineNr"> 431 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
 <span id="L432" class="LineNr"> 432 </span>    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx  <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx+edx to edx</span>
 <span id="L433" class="LineNr"> 433 </span><span class="Constant">$get-or-insert:search-loop</span>:
@@ -573,7 +573,7 @@ if ('onhashchange' in window) {
 <span id="L512" class="LineNr"> 512 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L513" class="LineNr"> 513 </span>    55/push-ebp
 <span id="L514" class="LineNr"> 514 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L515" class="LineNr"> 515 </span>    <span class="subxComment"># var table/ecx : (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
+<span id="L515" class="LineNr"> 515 </span>    <span class="subxComment"># var table/ecx: (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
 <span id="L516" class="LineNr"> 516 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># subtract from esp</span>
 <span id="L517" class="LineNr"> 517 </span>    68/push  0x10/imm32/length
 <span id="L518" class="LineNr"> 518 </span>    68/push  0/imm32/read
@@ -713,7 +713,7 @@ if ('onhashchange' in window) {
 <span id="L652" class="LineNr"> 652 </span><span class="subxComment"># if there are no rows free, abort</span>
 <span id="L653" class="LineNr"> 653 </span><span class="subxComment"># WARNING: leaks memory</span>
 <span id="L654" class="LineNr"> 654 </span><span class="subxComment"># TODO: pass in an allocation descriptor</span>
-<span id="L655" class="LineNr"> 655 </span><span class="subxFunction">leaky-get-or-insert-slice</span>:  <span class="subxComment"># table : (addr stream {string_key, T}), key : (addr slice), row-size : int -&gt; eax : (addr T)</span>
+<span id="L655" class="LineNr"> 655 </span><span class="subxFunction">leaky-get-or-insert-slice</span>:  <span class="subxComment"># table: (addr stream {string_key, T}), key: (addr slice), row-size: int -&gt; eax: (addr T)</span>
 <span id="L656" class="LineNr"> 656 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L657" class="LineNr"> 657 </span>    <span class="subxComment">#   curr = table-&gt;data</span>
 <span id="L658" class="LineNr"> 658 </span>    <span class="subxComment">#   max = &amp;table-&gt;data[table-&gt;write]</span>
@@ -737,9 +737,9 @@ if ('onhashchange' in window) {
 <span id="L676" class="LineNr"> 676 </span>    56/push-esi
 <span id="L677" class="LineNr"> 677 </span>    <span class="subxComment"># esi = table</span>
 <span id="L678" class="LineNr"> 678 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
-<span id="L679" class="LineNr"> 679 </span>    <span class="subxComment"># var curr/ecx : (addr string_key) = table-&gt;data</span>
+<span id="L679" class="LineNr"> 679 </span>    <span class="subxComment"># var curr/ecx: (addr string_key) = table-&gt;data</span>
 <span id="L680" class="LineNr"> 680 </span>    8d/copy-address                 1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+12 to ecx</span>
-<span id="L681" class="LineNr"> 681 </span>    <span class="subxComment"># var max/edx : (addr string_key) = &amp;table-&gt;data[table-&gt;write]</span>
+<span id="L681" class="LineNr"> 681 </span>    <span class="subxComment"># var max/edx: (addr string_key) = &amp;table-&gt;data[table-&gt;write]</span>
 <span id="L682" class="LineNr"> 682 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
 <span id="L683" class="LineNr"> 683 </span>    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx  <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx+edx to edx</span>
 <span id="L684" class="LineNr"> 684 </span><span class="Constant">$leaky-get-or-insert-slice:search-loop</span>:
@@ -830,7 +830,7 @@ if ('onhashchange' in window) {
 <span id="L769" class="LineNr"> 769 </span>    <span class="subxS1Comment"># . prologue</span>
 <span id="L770" class="LineNr"> 770 </span>    55/push-ebp
 <span id="L771" class="LineNr"> 771 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L772" class="LineNr"> 772 </span>    <span class="subxComment"># var table/ecx : (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
+<span id="L772" class="LineNr"> 772 </span>    <span class="subxComment"># var table/ecx: (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
 <span id="L773" class="LineNr"> 773 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># subtract from esp</span>
 <span id="L774" class="LineNr"> 774 </span>    68/push  0x10/imm32/length
 <span id="L775" class="LineNr"> 775 </span>    68/push  0/imm32/read
@@ -841,7 +841,7 @@ if ('onhashchange' in window) {
 <span id="L780" class="LineNr"> 780 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to edx</span>
 <span id="L781" class="LineNr"> 781 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx  <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+edx+4 to edx</span>
 <span id="L782" class="LineNr"> 782 </span>    05/add-to-eax  4/imm32
-<span id="L783" class="LineNr"> 783 </span>    <span class="subxComment"># var slice/edx : slice = {eax, edx}</span>
+<span id="L783" class="LineNr"> 783 </span>    <span class="subxComment"># var slice/edx: slice = {eax, edx}</span>
 <span id="L784" class="LineNr"> 784 </span>    52/push-edx
 <span id="L785" class="LineNr"> 785 </span>    50/push-eax
 <span id="L786" class="LineNr"> 786 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
@@ -934,7 +934,7 @@ if ('onhashchange' in window) {
 <span id="L873" class="LineNr"> 873 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to edx</span>
 <span id="L874" class="LineNr"> 874 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx  <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+edx+4 to edx</span>
 <span id="L875" class="LineNr"> 875 </span>    05/add-to-eax  4/imm32
-<span id="L876" class="LineNr"> 876 </span>    <span class="subxComment"># var slice/edx : slice = {eax, edx}</span>
+<span id="L876" class="LineNr"> 876 </span>    <span class="subxComment"># var slice/edx: slice = {eax, edx}</span>
 <span id="L877" class="LineNr"> 877 </span>    52/push-edx
 <span id="L878" class="LineNr"> 878 </span>    50/push-eax
 <span id="L879" class="LineNr"> 879 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
@@ -985,9 +985,9 @@ if ('onhashchange' in window) {
 <span id="L924" class="LineNr"> 924 </span>    c3/return
 <span id="L925" class="LineNr"> 925 </span>
 <span id="L926" class="LineNr"> 926 </span><span class="subxComment"># if no row is found, stop(ed)</span>
-<span id="L927" class="LineNr"> 927 </span><span class="subxFunction">get-or-stop</span>:  <span class="subxComment"># table : (addr stream {string_key, T}), key : string_key, row-size : int,</span>
-<span id="L928" class="LineNr"> 928 </span>              <span class="subxComment"># abort-message-prefix : (addr array byte), err : (addr buffered-file), ed : (addr exit-descriptor)</span>
-<span id="L929" class="LineNr"> 929 </span>              <span class="subxComment"># -&gt; eax : (addr T)</span>
+<span id="L927" class="LineNr"> 927 </span><span class="subxFunction">get-or-stop</span>:  <span class="subxComment"># table: (addr stream {string_key, T}), key: string_key, row-size: int,</span>
+<span id="L928" class="LineNr"> 928 </span>              <span class="subxComment"># abort-message-prefix: (addr array byte), err: (addr buffered-file), ed: (addr exit-descriptor)</span>
+<span id="L929" class="LineNr"> 929 </span>              <span class="subxComment"># -&gt; eax: (addr T)</span>
 <span id="L930" class="LineNr"> 930 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L931" class="LineNr"> 931 </span>    <span class="subxComment">#   curr = table-&gt;data</span>
 <span id="L932" class="LineNr"> 932 </span>    <span class="subxComment">#   max = &amp;table-&gt;data[table-&gt;write]</span>
@@ -1007,9 +1007,9 @@ if ('onhashchange' in window) {
 <span id="L946" class="LineNr"> 946 </span>    56/push-esi
 <span id="L947" class="LineNr"> 947 </span>    <span class="subxComment"># esi = table</span>
 <span id="L948" class="LineNr"> 948 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
-<span id="L949" class="LineNr"> 949 </span>    <span class="subxComment"># var curr/ecx : (addr string_key) = table-&gt;data</span>
+<span id="L949" class="LineNr"> 949 </span>    <span class="subxComment"># var curr/ecx: (addr string_key) = table-&gt;data</span>
 <span id="L950" class="LineNr"> 950 </span>    8d/copy-address                 1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+12 to ecx</span>
-<span id="L951" class="LineNr"> 951 </span>    <span class="subxComment"># var max/edx : (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
+<span id="L951" class="LineNr"> 951 </span>    <span class="subxComment"># var max/edx: (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
 <span id="L952" class="LineNr"> 952 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
 <span id="L953" class="LineNr"> 953 </span>    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx  <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx+edx to edx</span>
 <span id="L954" class="LineNr"> 954 </span><span class="Constant">$get-or-stop:search-loop</span>:
@@ -1112,13 +1112,13 @@ if ('onhashchange' in window) {
 <span id="L1051" class="LineNr">1051 </span>    e8/call  <a href='055stream.subx.html#L17'>clear-stream</a>/disp32
 <span id="L1052" class="LineNr">1052 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1053" class="LineNr">1053 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1054" class="LineNr">1054 </span>    <span class="subxComment"># var table/ecx : (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
+<span id="L1054" class="LineNr">1054 </span>    <span class="subxComment"># var table/ecx: (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
 <span id="L1055" class="LineNr">1055 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># subtract from esp</span>
 <span id="L1056" class="LineNr">1056 </span>    68/push  0x10/imm32/length
 <span id="L1057" class="LineNr">1057 </span>    68/push  0/imm32/read
 <span id="L1058" class="LineNr">1058 </span>    68/push  0/imm32/write
 <span id="L1059" class="LineNr">1059 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1060" class="LineNr">1060 </span>    <span class="subxComment"># var ed/edx : exit-descriptor</span>
+<span id="L1060" class="LineNr">1060 </span>    <span class="subxComment"># var ed/edx: exit-descriptor</span>
 <span id="L1061" class="LineNr">1061 </span>    68/push  0/imm32
 <span id="L1062" class="LineNr">1062 </span>    68/push  0/imm32
 <span id="L1063" class="LineNr">1063 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
@@ -1201,9 +1201,9 @@ if ('onhashchange' in window) {
 <span id="L1140" class="LineNr">1140 </span>    c3/return
 <span id="L1141" class="LineNr">1141 </span>
 <span id="L1142" class="LineNr">1142 </span><span class="subxComment"># if no row is found, stop(ed)</span>
-<span id="L1143" class="LineNr">1143 </span><span class="subxFunction">get-slice-or-stop</span>:  <span class="subxComment"># table : (addr stream {string_key, _}), key : (addr slice), row-size : int,</span>
-<span id="L1144" class="LineNr">1144 </span>                    <span class="subxComment"># abort-message-prefix : (addr string), err : (addr buffered-file), ed : (addr exit-descriptor)</span>
-<span id="L1145" class="LineNr">1145 </span>                    <span class="subxComment"># -&gt; eax : (addr _)</span>
+<span id="L1143" class="LineNr">1143 </span><span class="subxFunction">get-slice-or-stop</span>:  <span class="subxComment"># table: (addr stream {string_key, _}), key: (addr slice), row-size: int,</span>
+<span id="L1144" class="LineNr">1144 </span>                    <span class="subxComment"># abort-message-prefix: (addr string), err: (addr buffered-file), ed: (addr exit-descriptor)</span>
+<span id="L1145" class="LineNr">1145 </span>                    <span class="subxComment"># -&gt; eax: (addr _)</span>
 <span id="L1146" class="LineNr">1146 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L1147" class="LineNr">1147 </span>    <span class="subxComment">#   curr = table-&gt;data</span>
 <span id="L1148" class="LineNr">1148 </span>    <span class="subxComment">#   max = &amp;table-&gt;data[table-&gt;write]</span>
@@ -1223,9 +1223,9 @@ if ('onhashchange' in window) {
 <span id="L1162" class="LineNr">1162 </span>    56/push-esi
 <span id="L1163" class="LineNr">1163 </span>    <span class="subxComment"># esi = table</span>
 <span id="L1164" class="LineNr">1164 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
-<span id="L1165" class="LineNr">1165 </span>    <span class="subxComment"># var curr/ecx : (addr string_key) = table-&gt;data</span>
+<span id="L1165" class="LineNr">1165 </span>    <span class="subxComment"># var curr/ecx: (addr string_key) = table-&gt;data</span>
 <span id="L1166" class="LineNr">1166 </span>    8d/copy-address                 1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+12 to ecx</span>
-<span id="L1167" class="LineNr">1167 </span>    <span class="subxComment"># var max/edx : (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
+<span id="L1167" class="LineNr">1167 </span>    <span class="subxComment"># var max/edx: (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
 <span id="L1168" class="LineNr">1168 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
 <span id="L1169" class="LineNr">1169 </span>    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx  <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx+edx to edx</span>
 <span id="L1170" class="LineNr">1170 </span><span class="Constant">$get-slice-or-stop:search-loop</span>:
@@ -1328,17 +1328,17 @@ if ('onhashchange' in window) {
 <span id="L1267" class="LineNr">1267 </span>    e8/call  <a href='055stream.subx.html#L17'>clear-stream</a>/disp32
 <span id="L1268" class="LineNr">1268 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1269" class="LineNr">1269 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1270" class="LineNr">1270 </span>    <span class="subxComment"># var table/ecx : (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
+<span id="L1270" class="LineNr">1270 </span>    <span class="subxComment"># var table/ecx: (stream {string, number} 16)  # 2 rows * 8 bytes/row</span>
 <span id="L1271" class="LineNr">1271 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># subtract from esp</span>
 <span id="L1272" class="LineNr">1272 </span>    68/push  0x10/imm32/length
 <span id="L1273" class="LineNr">1273 </span>    68/push  0/imm32/read
 <span id="L1274" class="LineNr">1274 </span>    68/push  0/imm32/write
 <span id="L1275" class="LineNr">1275 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1276" class="LineNr">1276 </span>    <span class="subxComment"># var ed/edx : exit-descriptor</span>
+<span id="L1276" class="LineNr">1276 </span>    <span class="subxComment"># var ed/edx: exit-descriptor</span>
 <span id="L1277" class="LineNr">1277 </span>    68/push  0/imm32
 <span id="L1278" class="LineNr">1278 </span>    68/push  0/imm32
 <span id="L1279" class="LineNr">1279 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
-<span id="L1280" class="LineNr">1280 </span>    <span class="subxComment"># var slice/ebx : slice = &quot;code&quot;</span>
+<span id="L1280" class="LineNr">1280 </span>    <span class="subxComment"># var slice/ebx: slice = &quot;code&quot;</span>
 <span id="L1281" class="LineNr">1281 </span>    <span class="subxS1Comment"># . (eax..ebx) = &quot;code&quot;</span>
 <span id="L1282" class="LineNr">1282 </span>    b8/copy-to-eax  <span class="Constant">&quot;code&quot;</span>/imm32
 <span id="L1283" class="LineNr">1283 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ebx</span>
@@ -1440,7 +1440,7 @@ if ('onhashchange' in window) {
 <span id="L1379" class="LineNr">1379 </span>    c3/return
 <span id="L1380" class="LineNr">1380 </span>
 <span id="L1381" class="LineNr">1381 </span><span class="subxComment"># if no row is found, return null (0)</span>
-<span id="L1382" class="LineNr">1382 </span><span class="subxFunction">maybe-get</span>:  <span class="subxComment"># table : (addr stream {string_key, T}), key : string_key, row-size : int -&gt; eax : (addr T)</span>
+<span id="L1382" class="LineNr">1382 </span><span class="subxFunction">maybe-get</span>:  <span class="subxComment"># table: (addr stream {string_key, T}), key: string_key, row-size: int -&gt; eax: (addr T)</span>
 <span id="L1383" class="LineNr">1383 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L1384" class="LineNr">1384 </span>    <span class="subxComment">#   curr = table-&gt;data</span>
 <span id="L1385" class="LineNr">1385 </span>    <span class="subxComment">#   max = &amp;table-&gt;data[table-&gt;write]</span>
@@ -1459,9 +1459,9 @@ if ('onhashchange' in window) {
 <span id="L1398" class="LineNr">1398 </span>    56/push-esi
 <span id="L1399" class="LineNr">1399 </span>    <span class="subxComment"># esi = table</span>
 <span id="L1400" class="LineNr">1400 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
-<span id="L1401" class="LineNr">1401 </span>    <span class="subxComment"># var curr/ecx : (addr string_key) = table-&gt;data</span>
+<span id="L1401" class="LineNr">1401 </span>    <span class="subxComment"># var curr/ecx: (addr string_key) = table-&gt;data</span>
 <span id="L1402" class="LineNr">1402 </span>    8d/copy-address                 1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+12 to ecx</span>
-<span id="L1403" class="LineNr">1403 </span>    <span class="subxComment"># var max/edx : (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
+<span id="L1403" class="LineNr">1403 </span>    <span class="subxComment"># var max/edx: (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
 <span id="L1404" class="LineNr">1404 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
 <span id="L1405" class="LineNr">1405 </span>    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx  <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx+edx to edx</span>
 <span id="L1406" class="LineNr">1406 </span><span class="Constant">$maybe-get:search-loop</span>:
@@ -1504,7 +1504,7 @@ if ('onhashchange' in window) {
 <span id="L1443" class="LineNr">1443 </span>    55/push-ebp
 <span id="L1444" class="LineNr">1444 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
 <span id="L1445" class="LineNr">1445 </span>    <span class="subxH1Comment"># - setup: create a table with one row</span>
-<span id="L1446" class="LineNr">1446 </span>    <span class="subxComment"># var table/ecx : (stream {string, number} 16)   # 2 rows * 8 bytes/row</span>
+<span id="L1446" class="LineNr">1446 </span>    <span class="subxComment"># var table/ecx: (stream {string, number} 16)   # 2 rows * 8 bytes/row</span>
 <span id="L1447" class="LineNr">1447 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># subtract from esp</span>
 <span id="L1448" class="LineNr">1448 </span>    68/push  0x10/imm32/length
 <span id="L1449" class="LineNr">1449 </span>    68/push  0/imm32/read
@@ -1587,7 +1587,7 @@ if ('onhashchange' in window) {
 <span id="L1526" class="LineNr">1526 </span>    c3/return
 <span id="L1527" class="LineNr">1527 </span>
 <span id="L1528" class="LineNr">1528 </span><span class="subxComment"># if no row is found, return null (0)</span>
-<span id="L1529" class="LineNr">1529 </span><span class="subxFunction">maybe-get-slice</span>:  <span class="subxComment"># table : (addr stream {string_key, T}), key : (addr slice), row-size : int -&gt; eax : (addr T)</span>
+<span id="L1529" class="LineNr">1529 </span><span class="subxFunction">maybe-get-slice</span>:  <span class="subxComment"># table: (addr stream {string_key, T}), key: (addr slice), row-size: int -&gt; eax: (addr T)</span>
 <span id="L1530" class="LineNr">1530 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L1531" class="LineNr">1531 </span>    <span class="subxComment">#   curr = table-&gt;data</span>
 <span id="L1532" class="LineNr">1532 </span>    <span class="subxComment">#   max = &amp;table-&gt;data[table-&gt;write]</span>
@@ -1606,9 +1606,9 @@ if ('onhashchange' in window) {
 <span id="L1545" class="LineNr">1545 </span>    56/push-esi
 <span id="L1546" class="LineNr">1546 </span>    <span class="subxComment"># esi = table</span>
 <span id="L1547" class="LineNr">1547 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
-<span id="L1548" class="LineNr">1548 </span>    <span class="subxComment"># var curr/ecx : (addr string_key) = table-&gt;data</span>
+<span id="L1548" class="LineNr">1548 </span>    <span class="subxComment"># var curr/ecx: (addr string_key) = table-&gt;data</span>
 <span id="L1549" class="LineNr">1549 </span>    8d/copy-address                 1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+12 to ecx</span>
-<span id="L1550" class="LineNr">1550 </span>    <span class="subxComment"># var max/edx : (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
+<span id="L1550" class="LineNr">1550 </span>    <span class="subxComment"># var max/edx: (addr byte) = &amp;table-&gt;data[table-&gt;write]</span>
 <span id="L1551" class="LineNr">1551 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
 <span id="L1552" class="LineNr">1552 </span>    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx  <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx+edx to edx</span>
 <span id="L1553" class="LineNr">1553 </span><span class="Constant">$maybe-get-slice:search-loop</span>:
@@ -1651,7 +1651,7 @@ if ('onhashchange' in window) {
 <span id="L1590" class="LineNr">1590 </span>    55/push-ebp
 <span id="L1591" class="LineNr">1591 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
 <span id="L1592" class="LineNr">1592 </span>    <span class="subxH1Comment"># - setup: create a table with one row</span>
-<span id="L1593" class="LineNr">1593 </span>    <span class="subxComment"># var table/ecx : (stream {string, number} 16)   # 2 rows * 8 bytes/row</span>
+<span id="L1593" class="LineNr">1593 </span>    <span class="subxComment"># var table/ecx: (stream {string, number} 16)   # 2 rows * 8 bytes/row</span>
 <span id="L1594" class="LineNr">1594 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># subtract from esp</span>
 <span id="L1595" class="LineNr">1595 </span>    68/push  0x10/imm32/length
 <span id="L1596" class="LineNr">1596 </span>    68/push  0/imm32/read
@@ -1673,7 +1673,7 @@ if ('onhashchange' in window) {
 <span id="L1612" class="LineNr">1612 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to edx</span>
 <span id="L1613" class="LineNr">1613 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx  <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+edx+4 to edx</span>
 <span id="L1614" class="LineNr">1614 </span>    05/add-to-eax  4/imm32
-<span id="L1615" class="LineNr">1615 </span>    <span class="subxComment"># var slice/edx : slice = {eax, edx}</span>
+<span id="L1615" class="LineNr">1615 </span>    <span class="subxComment"># var slice/edx: slice = {eax, edx}</span>
 <span id="L1616" class="LineNr">1616 </span>    52/push-edx
 <span id="L1617" class="LineNr">1617 </span>    50/push-eax
 <span id="L1618" class="LineNr">1618 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
@@ -1723,7 +1723,7 @@ if ('onhashchange' in window) {
 <span id="L1662" class="LineNr">1662 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to edx</span>
 <span id="L1663" class="LineNr">1663 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx  <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+edx+4 to edx</span>
 <span id="L1664" class="LineNr">1664 </span>    05/add-to-eax  4/imm32
-<span id="L1665" class="LineNr">1665 </span>    <span class="subxComment"># var slice/edx : slice = {eax, edx}</span>
+<span id="L1665" class="LineNr">1665 </span>    <span class="subxComment"># var slice/edx: slice = {eax, edx}</span>
 <span id="L1666" class="LineNr">1666 </span>    52/push-edx
 <span id="L1667" class="LineNr">1667 </span>    50/push-eax
 <span id="L1668" class="LineNr">1668 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>