Skip to content

Commit

Permalink
[js] Implement sub foo(:$*dynamic_variable) {...}.
Browse files Browse the repository at this point in the history
  • Loading branch information
pmurias committed Nov 8, 2015
1 parent 414563e commit e84c552
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/vm/js/QAST/Compiler.nqp
Original file line number Diff line number Diff line change
Expand Up @@ -2283,7 +2283,6 @@ class QAST::CompilerJS does DWIMYNameMangling does SerializeOnce {
$slurpy := $_;
}
} elsif $_.named {
$*BLOCK.add_js_lexical(self.mangle_name($_.name));
my $quoted := quote_string($_.named);
my $value := "_NAMED[$quoted]";
if $_.default {
Expand All @@ -2295,7 +2294,14 @@ class QAST::CompilerJS does DWIMYNameMangling does SerializeOnce {
}
# TODO required named arguments and defaultless optional ones

@setup.push("{self.mangle_name($_.name)} = $value;\n");
if self.is_dynamic_var($_) {
@setup.push("{$*CTX}[{quote_string($_.name)}] = $value;\n");
}
else {
$*BLOCK.add_js_lexical(self.mangle_name($_.name));
@setup.push("{self.mangle_name($_.name)} = $value;\n");
}

} elsif self.is_dynamic_var($_) {
my $tmp := self.unique_var('param');
@sig.push($tmp);
Expand Down

0 comments on commit e84c552

Please sign in to comment.