Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Perlito5 - js - implement "\( @A )"
  • Loading branch information
fglock committed May 28, 2014
1 parent 234d9e6 commit b3219ea
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 26 deletions.
58 changes: 35 additions & 23 deletions html/perlito5.js

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions perlito5.pl

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion src5/lib/Perlito5/Javascript2/Emitter.pm
Expand Up @@ -258,7 +258,7 @@ package Perlito5::Javascript2;
&& ( exists($op_to_str{ $_[0]->{code} })
|| exists($op_to_num{ $_[0]->{code} })
|| exists($op_to_bool{ $_[0]->{code} })
|| $_[0]->{code} eq 'prefix:<\\>'
# || $_[0]->{code} eq 'prefix:<\\>' -- \(@a) is a list
)
)
}
Expand Down Expand Up @@ -1734,6 +1734,10 @@ package Perlito5::AST::Apply;
# # TODO
# return '(new p5GlobRef(' . $arg->emit_javascript2($level) . '))';
# }
if ( $arg->{code} eq 'circumfix:<( )>' ) {
# \( @x )
return 'p5_list_of_refs(' . Perlito5::Javascript2::to_list( $arg->{arguments} ) . ')';
}
if ( $arg->{code} eq 'prefix:<&>' ) {
return 'p5code_lookup_by_name("' . $Perlito5::PKG_NAME . '", ' . $arg->{arguments}->[0]->emit_javascript2($level) . ')';
}
Expand Down
9 changes: 9 additions & 0 deletions src5/lib/Perlito5/Javascript2/Runtime.pm
Expand Up @@ -575,6 +575,15 @@ p5list_to_a = function() {
return res;
};
p5_list_of_refs = function(a) {
// implements \( @a )
var res = [];
for (i = 0; i < a.length; i++) {
res.push(new p5ScalarRef(a[i]));
}
return res;
};
p5a_to_h = function(a) {
var res = {};
for (i = 0; i < a.length; i+=2) {
Expand Down

0 comments on commit b3219ea

Please sign in to comment.