1 /* eslint-disable strict */ 2 require('../common'); 3 4 // In Node.js 0.10, a bug existed that caused strict functions to not capture 5 // their environment when evaluated. When run in 0.10 `test()` fails with a 6 // `ReferenceError`. See https://github.com/nodejs/node/issues/2245 for details. 7 8 const assert = require('assert'); 9 10 function test() { 11 12 const code = [ 13 'var foo = {m: 1};', 14 '', 15 'function bar() {', 16 '\'use strict\';', 17 'return foo; // foo isn\'t captured in 0.10', 18 '};', 19 ].join('\n'); 20 21 eval(code); 22 23 return bar(); // eslint-disable-line no-undef 24 25 } 26 27 assert.deepStrictEqual(test(), { m: 1 }); 28