global.eval no puede visitar variables en el ámbito léxico. ¿Cumple el comportamiento el estándar ECMAScript?

Tengo un archivo JavaScripte.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"));

Cuando lo ejecuto por 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 resultado,global.eval funciona para el operador matemático, pero no puede visitar la variablei, mientraseval Funciona para ambos casos.

¿Es este comportamiento una limitación de V8? ¿O es el comportamiento esperado de acuerdo con el estándar ECMAScript?

Respuestas a la pregunta(1)

Su respuesta a la pregunta