{
  "name": "lively.vm",
  "version": "0.7.23",
  "description": "Controlled JavaScript code execution and instrumentation.",
  "main": "dist/lively.vm.js",
  "systemjs": {
    "main": "index.js",
    "map": {
      "mocha-es6": "node_modules/mocha-es6/mocha-es6.js"
    }
  },
  "lively": {
    "packageMap": {
      "lively.lang": "./node_modules/lively.lang",
      "lively.ast": "./node_modules/lively.ast",
      "lively.modules": "./node_modules/lively.modules"
    }
  },
  "scripts": {
    "test": "mocha-es6 tests/*-test.js",
    "build": "node tools/build.js"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/LivelyKernel/lively.vm.git"
  },
  "keywords": [
    "LivelyWeb",
    "JavaScript"
  ],
  "author": {
    "name": "Robert Krahn"
  },
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/LivelyKernel/lively.vm/issues"
  },
  "homepage": "https://github.com/LivelyKernel/lively.vm",
  "dependencies": {
    "lively.ast": "^0.7.6",
    "lively.lang": "^0.7.0"
  },
  "devDependencies": {
    "babel-plugin-syntax-object-rest-spread": "^6.8.0",
    "babel-plugin-transform-async-to-generator": "^6.8.0",
    "babel-plugin-transform-object-rest-spread": "^6.8.0",
    "babel-preset-es2015-rollup": "^1.1.1",
    "lively.modules": "^0.5.0",
    "mocha-es6": "^0.3.1",
    "rollup": "^0.26.1",
    "rollup-plugin-babel": "^2.4.0"
  },
  "readme": "# lively.vm [![Build Status](https://travis-ci.org/LivelyKernel/lively.vm.svg)](https://travis-ci.org/LivelyKernel/lively.vm)\n\nControlled JavaScript code execution and instrumentation.\n\n## interface\n\n#### `lively.vm.runEval(sourceString, options)`\n\nTo evaluate an expression in the context of a module (to access and modify\nits internal state) you can use the `runEval` method.\n\nExample: If you have a module `a.js` with the source code\n\n```js\nvar x = 23;\nexport x;\n```\n\nyou can evaluate an expression like `x + 2` via\n`lively.vm.runEval(\"x + 2\", {targetModule: \"a.js\"})`.\nThis will return a promise that resolves to an `EvalResult` object. The eval\nresult will have a field `value` which is the actual return value of the last\nexpression evaluated. In this example it is the number 25.\n\nNote: Since variable `x` is exported by `a.js` the evaluation will also\naffect the exported value of the module. Dependent modules will automatically\nhave access to the new exported value x.\n\n*Caveat in the current version*: When evaluating new exports (exports that\ndidn't exist when the module was first imported) you need to run\n[`lively.modules.reloadModule`](https://github.com/LivelyKernel/lively.modules#reloadmodulemodulename-options)\nto properly update dependent modules!\n\n<!--\n## Examples\n\n```js\nvar state = {y: 2};\nlively.vm.syncEval(\n  \"var x, y; (function() { x = y * 3; })();\",\n  {topLevelVarRecorder: state});\nstate.x // => 6\nwindow.x // -> undefined, evalSync did not touch globals\n```\n-->\n\n## LICENSE\n\n[MIT](LICENSE)\n",
  "readmeFilename": "README.md",
  "_id": "lively.vm@0.7.23",
  "_from": "lively.vm@*"
}
