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));
 | 
					            stack.push(Math.cos(a));
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
          case 'cvi':
 | 
					          case 'cvi':
 | 
				
			||||||
            a |= stack.pop();
 | 
					            a = stack.pop() | 0;
 | 
				
			||||||
            stack.push(a);
 | 
					            stack.push(a);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
          case 'cvr':
 | 
					          case 'cvr':
 | 
				
			||||||
@ -583,7 +583,7 @@ var PostScriptEvaluator = (function PostScriptEvaluatorClosure() {
 | 
				
			|||||||
          case 'idiv':
 | 
					          case 'idiv':
 | 
				
			||||||
            b = stack.pop();
 | 
					            b = stack.pop();
 | 
				
			||||||
            a = stack.pop();
 | 
					            a = stack.pop();
 | 
				
			||||||
            stack.push(Math.floor(a / b));
 | 
					            stack.push((a / b) | 0);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
          case 'index':
 | 
					          case 'index':
 | 
				
			||||||
            a = stack.pop();
 | 
					            a = stack.pop();
 | 
				
			||||||
 | 
				
			|||||||
@ -173,7 +173,16 @@ describe('function', function() {
 | 
				
			|||||||
    // TODO floor
 | 
					    // TODO floor
 | 
				
			||||||
    // TODO ge
 | 
					    // TODO ge
 | 
				
			||||||
    // TODO gt
 | 
					    // 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() {
 | 
					    it('duplicates index', function() {
 | 
				
			||||||
      var stack = evaluate('{ 4 3 2 1 2 index }');
 | 
					      var stack = evaluate('{ 4 3 2 1 2 index }');
 | 
				
			||||||
      var expectedStack = [4, 3, 2, 1, 3];
 | 
					      var expectedStack = [4, 3, 2, 1, 3];
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user