| /* eslint-disable strict */ |
| require('../common'); |
| |
| // In Node.js 0.10, a bug existed that caused strict functions to not capture |
| // their environment when evaluated. When run in 0.10 `test()` fails with a |
| // `ReferenceError`. See https://github.com/nodejs/node/issues/2245 for details. |
| |
| const assert = require('assert'); |
| |
| function test() { |
| |
| const code = [ |
| 'var foo = {m: 1};', |
| '', |
| 'function bar() {', |
| '\'use strict\';', |
| 'return foo; // foo isn\'t captured in 0.10', |
| '};', |
| ].join('\n'); |
| |
| eval(code); |
| |
| return bar(); // eslint-disable-line no-undef |
| |
| } |
| |
| assert.deepStrictEqual(test(), { m: 1 }); |