67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # vm-browserify
 | |
| 
 | |
| emulate node's vm module for the browser
 | |
| 
 | |
| [](https://travis-ci.org/browserify/vm-browserify)
 | |
| 
 | |
| # example
 | |
| 
 | |
| Just write some client-side javascript:
 | |
| 
 | |
| ``` js
 | |
| var vm = require('vm');
 | |
| 
 | |
| window.addEventListener('load', function () {
 | |
|     var res = vm.runInNewContext('a + 5', { a : 100 });
 | |
|     document.querySelector('#res').textContent = res;
 | |
| });
 | |
| ```
 | |
| 
 | |
| compile it with [browserify](http://github.com/substack/node-browserify):
 | |
| 
 | |
| ```
 | |
| browserify entry.js -o bundle.js
 | |
| ```
 | |
| 
 | |
| then whip up some html:
 | |
| 
 | |
| ``` html
 | |
| <html>
 | |
|   <head>
 | |
|     <script src="/bundle.js"></script>
 | |
|   </head>
 | |
|   <body>
 | |
|     result = <span id="res"></span>
 | |
|   </body>
 | |
| </html>
 | |
| ```
 | |
| 
 | |
| and when you load the page you should see:
 | |
| 
 | |
| ```
 | |
| result = 105
 | |
| ```
 | |
| 
 | |
| # methods
 | |
| 
 | |
| ## vm.runInNewContext(code, context={})
 | |
| 
 | |
| Evaluate some `code` in a new iframe with a `context`.
 | |
| 
 | |
| Contexts are like wrapping your code in a `with()` except slightly less terrible
 | |
| because the code is sandboxed into a new iframe.
 | |
| 
 | |
| # install
 | |
| 
 | |
| This module is depended upon by browserify, so you should just be able to
 | |
| `require('vm')` and it will just work. However if you want to use this module
 | |
| directly you can install it with [npm](http://npmjs.org):
 | |
| 
 | |
| ```
 | |
| npm install vm-browserify
 | |
| ```
 | |
| 
 | |
| # license
 | |
| 
 | |
| MIT
 |