Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Rewrite use of subst.
  • Loading branch information
pmurias committed Jul 27, 2014
1 parent 0d6b269 commit 8cb2e07
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions src/vm/js/QAST/Compiler.nqp
Expand Up @@ -1301,15 +1301,24 @@ class QAST::CompilerJS does SerializeOnce {
%mangle<`> := 'BACKTICK';
%mangle<$> := 'DOLAR';
%mangle<\\> := 'BACKSLASH';

method mangle_name($name) {
if self.is_reserved_word($name) {$name := "_$name"}
my $mangled := subst($name,/(\W)/,-> $match {
if nqp::existskey(%mangle, $match[0]) {
'_'~%mangle{$match[0]}~'_';

my $mangled := '';

for nqp::split('',$name) -> $char {
if nqp::iscclass(nqp::const::CCLASS_ALPHANUMERIC, $char, 0) {
$mangled := $mangled ~ $char;
} else {
'_'~nqp::ord($match[0])~'_';
if nqp::existskey(%mangle, $char) {
$mangled := $mangled ~ '_' ~ %mangle{$char} ~ '_';
} else {
$mangled := $mangled ~ '_' ~ nqp::ord($char) ~ '_';
}
}
},:global);
}

$mangled;
}

Expand Down

0 comments on commit 8cb2e07

Please sign in to comment.