From 8c682a39824521b78f84ff67b88ce2c7f5cfbe20 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 00000000000000..a7f54caa5fdeb6 --- /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});