Skip to content

Commit 62131aa

Browse files
committed
Perlito5 - js3 - increment/decrement
1 parent df13543 commit 62131aa

File tree

3 files changed

+31
-9
lines changed

3 files changed

+31
-9
lines changed

perlito5.pl

Lines changed: 5 additions & 5 deletions
Large diffs are not rendered by default.

src5/lib/Perlito5/Javascript3/Emitter.pm

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,19 +1417,19 @@ package Perlito5::AST::Apply;
14171417

14181418
'postfix:<++>' => sub {
14191419
my $self = $_[0];
1420-
'(' . join( ' ', map( $_->emit_javascript3, @{ $self->{arguments} } ) ) . ')++';
1420+
$self->{arguments}[0]->emit_javascript3() . '.p5postincr()';
14211421
},
14221422
'postfix:<-->' => sub {
14231423
my $self = $_[0];
1424-
'(' . join( ' ', map( $_->emit_javascript3, @{ $self->{arguments} } ) ) . ')--';
1424+
$self->{arguments}[0]->emit_javascript3() . '.p5postdecr()';
14251425
},
14261426
'prefix:<++>' => sub {
14271427
my $self = $_[0];
1428-
'++(' . join( ' ', map( $_->emit_javascript3, @{ $self->{arguments} } ) ) . ')';
1428+
$self->{arguments}[0]->emit_javascript3() . '.p5incr()';
14291429
},
14301430
'prefix:<-->' => sub {
14311431
my $self = $_[0];
1432-
'--(' . join( ' ', map( $_->emit_javascript3, @{ $self->{arguments} } ) ) . ')';
1432+
$self->{arguments}[0]->emit_javascript3() . '.p5decr()';
14331433
},
14341434

14351435
'infix:<x>' => sub {

src5/lib/Perlito5/Javascript3/Runtime.pm

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,28 @@ function p5Scalar(o) {
455455
this.p5code = function() {
456456
return p5code(this._v_);
457457
};
458+
this.p5incr = function() {
459+
// TODO - string increment with p5str_inc()
460+
this._v_++;
461+
return this._v_;
462+
};
463+
this.p5postincr = function() {
464+
// TODO - string increment with p5str_inc()
465+
var v = this._v_;
466+
this._v_++;
467+
return v;
468+
};
469+
this.p5decr = function() {
470+
// TODO - numify before decrement
471+
this._v_--;
472+
return this._v_;
473+
};
474+
this.p5postdecr = function() {
475+
// TODO - numify before decrement
476+
var v = this._v_;
477+
this._v_--;
478+
return v;
479+
};
458480
459481
// be a scalar ref
460482
this.sderef = function(i) {

0 commit comments

Comments
 (0)