In non-strict mode, calling a plain function reference extracted from an object (not via the object) makes `this` the global object. What exact spec step produces this, and how does strict mode change it?
'use strict';
const o = { m() { return this; } };
const f = o.m;
console.log(f());