Skip to content

Commit 6b80f2a

Browse files
committed
Perlito5 - js3 - more tied methods
1 parent fdcaf07 commit 6b80f2a

File tree

3 files changed

+25
-18
lines changed

3 files changed

+25
-18
lines changed

perlito5.pl

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

src5/lib/Perlito5/Javascript3/CORE.pm

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -279,32 +279,19 @@ CORE.splice = function(List__, p5want) {
279279
};
280280
281281
CORE.pop = function(List__) {
282-
var o = List__[0];
283-
if (o._array_.length == null) {
284-
return null;
285-
}
286-
return o._array_.pop();
282+
return List__[0].POP();
287283
};
288284
289285
CORE.shift = function(List__) {
290-
var o = List__[0];
291-
if (o._array_.length == null) {
292-
return null;
293-
}
294-
return o._array_.shift();
286+
return List__[0].SHIFT();
295287
};
296288
297289
CORE.push = function(List__) {
298290
return List__[0].PUSH(List__[1]);
299291
};
300292
301293
CORE.unshift = function(List__) {
302-
var o = List__[0];
303-
var v = List__[1];
304-
for(var i = v._array_.length-1; i >= 0; i--) {
305-
o._array_.unshift(v._array_[i]);
306-
}
307-
return o._array_.length;
294+
return List__[0].UNSHIFT(List__[1]);
308295
};
309296
310297
CORE.join = function(List__) {

src5/lib/Perlito5/Javascript3/Runtime.pm

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,12 +386,32 @@ function p5Array(o) {
386386
}
387387
return this;
388388
};
389+
390+
// operations that can be tie()
389391
this.PUSH = function(v) {
390392
for(var i = 0; i < v._array_.length; i++) {
391393
this._array_.push(v._array_[i] instanceof p5Scalar ? v._array_[i]._v_ : v._array_[i]);
392394
}
393395
return this._array_.length;
394396
};
397+
this.UNSHIFT = function(v) {
398+
for(var i = v._array_.length-1; i >= 0; i--) {
399+
this._array_.unshift(v._array_[i] instanceof p5Scalar ? v._array_[i]._v_ : v._array_[i]);
400+
}
401+
return this._array_.length;
402+
};
403+
this.POP = function() {
404+
if (this._array_.length == null) {
405+
return null;
406+
}
407+
return this._array_.pop();
408+
};
409+
this.SHIFT = function(v) {
410+
if (this._array_.length == null) {
411+
return null;
412+
}
413+
return this._array_.shift();
414+
};
395415
}
396416
397417
function p5Hash(o) {

0 commit comments

Comments
 (0)