Checks this in arrow function scope (function() { let f = () => { #debugger; }; f(); This on callFrame: { type : undefined } This in evaluateOnCallFrame: { type : undefined } Values equal: true let f = () => { debugger; }; #f(); }).call('a'); This on callFrame: { className : String description : String objectId : type : object } This in evaluateOnCallFrame: { className : String description : String objectId : type : object } Values equal: true f(); }).#call('a'); return a; This on callFrame: { className : Number description : Number objectId : type : object } This in evaluateOnCallFrame: { className : Number description : Number objectId : type : object } Values equal: true function boo() { foo.call(1)#(); } This on callFrame: { className : Object description : Object objectId : type : object } This in evaluateOnCallFrame: { className : Object description : Object objectId : type : object } Values equal: true } (() => boo.#call({}))(); This on callFrame: { type : undefined } This in evaluateOnCallFrame: { type : undefined } Values equal: true } (() => boo.call({}))#(); This on callFrame: { className : global description : global objectId : type : object } This in evaluateOnCallFrame: { className : Object description : Object objectId : type : object } Values equal: false