diff --git a/src/current/compiler/js.xsl b/src/current/compiler/js.xsl
index bd4991df..aa4f5b02 100644
--- a/src/current/compiler/js.xsl
+++ b/src/current/compiler/js.xsl
@@ -705,8 +705,20 @@
',', compiler:match-value( $symtable-map, $m1 ),
',', compiler:match-value( $symtable-map, $v1 ),
');' )" />
+
-
+
+
+
@@ -1499,6 +1511,32 @@
return [result, any];
}
+ function vu(vs, cmps)
+ {
+ const longest = Math.max.apply(null, vs.map(v => v.length));
+ const base = new Array(longest).fill(1);
+
+ const result = vs.reduce(
+ (final, v, vi) => final.map((x, i) => +(x && ((v[i]||0) === cmps[vi]))),
+ base
+ );
+
+ return [result, result.some(s => s === 1)];
+ }
+
+ function ve(vs, cmps)
+ {
+ const longest = Math.max.apply(null, vs.map(v => v.length));
+ const base = new Array(longest).fill(0);
+
+ const result = vs.reduce(
+ (final, v, vi) => final.map((x, i) => +(x || ((v[i]||0) === cmps[vi]))),
+ base
+ );
+
+ return [result, result.some(s => s === 1)];
+ }
+
/**
* Checks for matches against values for any param value