/* global globalThis, self */
import freeGlobal from './freeGlobal.js';

/** Detect free variable `globalThis` */
/** 检测自由变量' globalThis ' */
const freeGlobalThis =
	typeof globalThis === 'object' &&
	globalThis !== null &&
	globalThis.Object == Object &&
	globalThis;

/** Detect free variable `self`. */
/** 检测自由变量“自我”。 */
const freeSelf = typeof self === 'object' && self !== null && self.Object === Object && self;

/** Used as a reference to the global object. */
/** 用作对全局对象的引用。 */
const root = freeGlobalThis || freeGlobal || freeSelf || Function('return this')();

export default root;