global.eval não pode visitar variáveis no escopo lexical. O comportamento está em conformidade com o padrão ECMAScript?

Eu tenho um arquivo JavaScript,e.js

var global = Function('return this')();

var i = 1;

console.log(eval("100-1"));
console.log(eval("i"));

console.log(global.eval("100-1"));
console.log(global.eval("i"));

Quando eu o executo pela V8:

$ node e.js
99
1
99

undefined:1
i
^
ReferenceError: i is not defined
    at eval (eval at <anonymous> (/private/tmp/xxxx/e.js:8:20), <anonymous>:1:1)
    at eval (native)
    at Object.<anonymous> (/private/tmp/xxxx/e.js:8:20)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

Como um resultado,global.eval funciona para o operador matemático, mas não pode visitar a variáveli, enquantoeval funciona para os dois casos.

Esse comportamento é uma limitação do V8? Ou é o comportamento esperado de acordo com o padrão ECMAScript?

questionAnswers(1)

yourAnswerToTheQuestion