Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Perlito5 - js - fix context in chained method calls
  • Loading branch information
fglock committed Nov 23, 2012
1 parent faef513 commit 574d226
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 36 deletions.
42 changes: 20 additions & 22 deletions html/perlito5.js

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions perlito5.pl

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src5/lib/Perlito5/Javascript2/Emitter.pm
Expand Up @@ -1203,7 +1203,7 @@ package Perlito5::AST::Call;
. ')';
}

my $invocant = $self->{invocant}->emit_javascript2;
my $invocant = $self->{invocant}->emit_javascript2($level, 'scalar');
if ($meth eq 'postcircumfix:<( )>') {
return '(' . $invocant . ')(' . Perlito5::Javascript2::to_list($self->{arguments}) . ', '
. ($wantarray eq 'list' ? '1'
Expand All @@ -1214,7 +1214,7 @@ package Perlito5::AST::Call;
. ')';
}
if ( ref($meth) eq 'Perlito5::AST::Var' ) {
$meth = $meth->emit_javascript2();
$meth = $meth->emit_javascript2($level, 'scalar');
}
else {
$meth = '"' . $meth . '"';
Expand Down
2 changes: 0 additions & 2 deletions src5/lib/Perlito5/Javascript2/Runtime.pm
Expand Up @@ -139,8 +139,6 @@ function p5method_lookup(method, class_name, seen) {
function p5call(invocant, method, list, p5want) {
list.unshift(invocant);
p5want = 0; // TODO BUG - workaround for broken bootstrap
if (typeof invocant === "string") {
invocant = p5make_package(invocant);
}
Expand Down
4 changes: 2 additions & 2 deletions src5/lib/Perlito5/Javascript3/Emitter.pm
Expand Up @@ -1176,7 +1176,7 @@ package Perlito5::AST::Call;
. '.hget(' . Perlito5::Javascript3::autoquote($self->{arguments}, $level, 'list') . ', ' . $type . ')';
}

my $invocant = $self->{invocant}->emit_javascript3;
my $invocant = $self->{invocant}->emit_javascript3($level, 'scalar');
if ($meth eq 'postcircumfix:<( )>') {
return 'p5code(' . $invocant . ')(' . Perlito5::Javascript3::to_list($self->{arguments}) . ', '
. ($wantarray eq 'list' ? '1'
Expand All @@ -1187,7 +1187,7 @@ package Perlito5::AST::Call;
. ')';
}
if ( ref($meth) eq 'Perlito5::AST::Var' ) {
$meth = $meth->emit_javascript3();
$meth = $meth->emit_javascript3($level, 'scalar');
}
else {
$meth = '"' . $meth . '"';
Expand Down
2 changes: 0 additions & 2 deletions src5/lib/Perlito5/Javascript3/Runtime.pm
Expand Up @@ -147,8 +147,6 @@ function p5method_lookup(method, class_name, seen) {
function p5call(invocant, method, list, p5want) {
list.unshift(invocant);
p5want = 0; // TODO BUG - workaround for broken bootstrap
if (invocant instanceof p5Scalar) {
// TODO - move p5call() to p5Scalar method
invocant = invocant.FETCH();
Expand Down

0 comments on commit 574d226

Please sign in to comment.