You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					36 lines
				
				825 B
			
		
		
			
		
	
	
					36 lines
				
				825 B
			| 
								 
											4 years ago
										 
									 | 
							
								var test = require('tape');
							 | 
						||
| 
								 | 
							
								var vm = require('../');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								test('vmRunInNewContext', function (t) {
							 | 
						||
| 
								 | 
							
								    t.plan(6);
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    t.equal(vm.runInNewContext('a + 5', { a : 100 }), 105);
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    (function () {
							 | 
						||
| 
								 | 
							
								        var vars = { x : 10 };
							 | 
						||
| 
								 | 
							
								        t.equal(vm.runInNewContext('x++', vars), 10);
							 | 
						||
| 
								 | 
							
								        t.equal(vars.x, 11);
							 | 
						||
| 
								 | 
							
								    })();
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    (function () {
							 | 
						||
| 
								 | 
							
								        var vars = { x : 10 };
							 | 
						||
| 
								 | 
							
								        t.equal(vm.runInNewContext('var y = 3; y + x++', vars), 13);
							 | 
						||
| 
								 | 
							
								        t.equal(vars.x, 11);
							 | 
						||
| 
								 | 
							
								        t.equal(vars.y, 3);
							 | 
						||
| 
								 | 
							
								    })();
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    t.end();
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								test('vmRunInContext', function (t) {
							 | 
						||
| 
								 | 
							
								    t.plan(2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var context = vm.createContext({ foo: 1 });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    vm.runInContext('var x = 1', context);
							 | 
						||
| 
								 | 
							
								    t.deepEqual(context, { foo: 1, x: 1 });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    vm.runInContext('var y = 1', context);
							 | 
						||
| 
								 | 
							
								    t.deepEqual(context, { foo: 1, x: 1, y: 1 });
							 | 
						||
| 
								 | 
							
								});
							 |