Javascript im Kontext ohne Verwendung dieses Schlüsselworts bewerten

Ich versuche, eval in einem bestimmten Kontext auszuführen. Ich habe die Antwort gefundenHie nützlich. In Chrome Version 53.0.2785.143 m wird jedoch das folgende Verhalten angezeigt. Nicht andere Browser ausprobiert. Der Code, den ich verwende, ist der folgende:

function evalInContext(js, context) {
    return function() { return eval(js); }.call(context);
}


console.log(evalInContext('x==3', { x : 3})) // Throws
console.log(evalInContext('this.x==3', { x : 3})) // OK

Allerdings habe ich den ersten Anruf bei @ erwartevalInContext nicht zu werfen. Irgendwelche Ideen, warum das passieren könnte?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage