compiler/js (lv:classify): Extract @yields dest name into function

I will be changing how this work shortly.
master
Mike Gerwitz 2021-01-14 15:01:11 -05:00
parent 6512ea245a
commit 05736abe23
1 changed files with 13 additions and 6 deletions

View File

@ -596,7 +596,7 @@
<sequence select="concat( compiler:class-var(.), '=!!', $val, ';' )" />
<if test="@yields">
<sequence select="concat( 'A[''', @yields, ''']=', $val, ';' )" />
<sequence select="concat( compiler:class-yields-var(.), '=', $val, ';' )" />
</if>
</template>
@ -617,6 +617,16 @@
</function>
<!--
JS variable to which class @yields will be assigned
-->
<function name="compiler:class-yields-var" as="xs:string">
<param name="class" as="element( lv:classify )" />
<sequence select="concat( 'A[''', $class/@yields, ''']' )" />
</function>
<!--
Generate code to perform a classification
@ -633,11 +643,8 @@
<value-of select="$compiler:nl" />
<variable name="dest">
<text>A['</text>
<value-of select="@yields" />
<text>']</text>
</variable>
<variable name="dest" as="xs:string"
select="compiler:class-yields-var(.)" />
<sequence select="concat( $dest, '=[];', $compiler:nl )" />