Skip to content

Commit

Permalink
[js] Enable unival
Browse files Browse the repository at this point in the history
  • Loading branch information
pmurias committed Oct 15, 2017
1 parent f6d0bcb commit 2053dde
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/core/Cool.pm
Expand Up @@ -344,8 +344,19 @@ multi sub unimatch(|) { die 'unimatch NYI on jvm backend' }
#?endif

#?if js
multi sub unival(|) { die 'unival NYI on js backend' }
multi sub univals(|) { die 'univals NYI on js backend' }
proto sub unival(|) {*}
multi sub unival(Str:D $str) { $str ?? unival($str.ord) !! Nil }
multi sub unival(Int:D $code) {
state $nuprop = nqp::unipropcode("Numeric_Value_Numerator");
state $deprop = nqp::unipropcode("Numeric_Value_Denominator");
my $nu = nqp::getuniprop_str($code, $nuprop);
my $de = nqp::getuniprop_str($code, $deprop);
!$de || $de eq '1' ?? $nu.Int !! $nu / $de;
}

proto sub univals(|) {*}
multi sub univals(Str:D $str) { $str.ords.map: { unival($_) } }

multi sub uniprop(|) { die 'uniprop NYI on js backend' }
multi sub uniprop-int(|) { die 'uniprop-int NYI on js backend' }
multi sub uniprop-bool(|) { die 'uniprop-bool NYI on js backend' }
Expand Down

0 comments on commit 2053dde

Please sign in to comment.