Fix idiv and cvi. Add test case for idiv.
This commit is contained in:
parent
6afb49c6c6
commit
9de52f375d
@ -536,7 +536,7 @@ var PostScriptEvaluator = (function PostScriptEvaluatorClosure() {
|
||||
stack.push(Math.cos(a));
|
||||
break;
|
||||
case 'cvi':
|
||||
a |= stack.pop();
|
||||
a = stack.pop() | 0;
|
||||
stack.push(a);
|
||||
break;
|
||||
case 'cvr':
|
||||
@ -583,7 +583,7 @@ var PostScriptEvaluator = (function PostScriptEvaluatorClosure() {
|
||||
case 'idiv':
|
||||
b = stack.pop();
|
||||
a = stack.pop();
|
||||
stack.push(Math.floor(a / b));
|
||||
stack.push((a / b) | 0);
|
||||
break;
|
||||
case 'index':
|
||||
a = stack.pop();
|
||||
|
@ -173,7 +173,16 @@ describe('function', function() {
|
||||
// TODO floor
|
||||
// TODO ge
|
||||
// TODO gt
|
||||
// TODO idiv
|
||||
it('divides to integer', function() {
|
||||
var stack = evaluate('{ 2 3 idiv }');
|
||||
var expectedStack = [0];
|
||||
expect(stack).toMatchArray(expectedStack);
|
||||
});
|
||||
it('divides to negative integer', function() {
|
||||
var stack = evaluate('{ -2 3 idiv }');
|
||||
var expectedStack = [0];
|
||||
expect(stack).toMatchArray(expectedStack);
|
||||
});
|
||||
it('duplicates index', function() {
|
||||
var stack = evaluate('{ 4 3 2 1 2 index }');
|
||||
var expectedStack = [4, 3, 2, 1, 3];
|
||||
|
Loading…
Reference in New Issue
Block a user