# vm-browserify

## vm-browserify

emulate node's vm module for the browser

[![Build Status](https://travis-ci.org/browserify/vm-browserify.svg?branch=master)](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
