From 25eedf02a85bf3cac25f8f9b2c38d91969f52fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1ri=20Tristan=20Helgason?= Date: Mon, 15 Feb 2016 22:55:35 +0000 Subject: [PATCH] test: eval a strict function PR-URL: https://github.com/nodejs/node/pull/5250 Reviewed-By: James M Snell Reviewed-By: Sakthipriyan Vairamani --- test/parallel/test-regress-GH-2245.js | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 test/parallel/test-regress-GH-2245.js diff --git a/test/parallel/test-regress-GH-2245.js b/test/parallel/test-regress-GH-2245.js new file mode 100644 index 0000000000..a7f54caa5f --- /dev/null +++ b/test/parallel/test-regress-GH-2245.js @@ -0,0 +1,28 @@ +/* eslint-disable strict */ +require('../common'); +var assert = require('assert'); + +/* +in node 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. +*/ + +function test() { + + var code = [ + 'var foo = {m: 1};', + '', + 'function bar() {', + '\'use strict\';', + 'return foo; // foo isn\'t captured in 0.10', + '};' + ].join('\n'); + + eval(code); + + return bar(); + +} + +assert.deepEqual(test(), {m: 1});