| 
						 | 
						- /**
 -  * @fileoverview Defines environment settings and globals.
 -  * @author Elan Shanker
 -  */
 - 
 - //------------------------------------------------------------------------------
 - // Requirements
 - //------------------------------------------------------------------------------
 - 
 - import globals from "globals";
 - 
 - //------------------------------------------------------------------------------
 - // Helpers
 - //------------------------------------------------------------------------------
 - 
 - /**
 -  * Get the object that has difference.
 -  * @param {Record<string,boolean>} current The newer object.
 -  * @param {Record<string,boolean>} prev The older object.
 -  * @returns {Record<string,boolean>} The difference object.
 -  */
 - function getDiff(current, prev) {
 -     const retv = {};
 - 
 -     for (const [key, value] of Object.entries(current)) {
 -         if (!Object.hasOwnProperty.call(prev, key)) {
 -             retv[key] = value;
 -         }
 -     }
 - 
 -     return retv;
 - }
 - 
 - const newGlobals2015 = getDiff(globals.es2015, globals.es5); // 19 variables such as Promise, Map, ...
 - const newGlobals2017 = {
 -     Atomics: false,
 -     SharedArrayBuffer: false
 - };
 - const newGlobals2020 = {
 -     BigInt: false,
 -     BigInt64Array: false,
 -     BigUint64Array: false,
 -     globalThis: false
 - };
 - 
 - const newGlobals2021 = {
 -     AggregateError: false,
 -     FinalizationRegistry: false,
 -     WeakRef: false
 - };
 - 
 - //------------------------------------------------------------------------------
 - // Public Interface
 - //------------------------------------------------------------------------------
 - 
 - /** @type {Map<string, import("../lib/shared/types").Environment>} */
 - export default new Map(Object.entries({
 - 
 -     // Language
 -     builtin: {
 -         globals: globals.es5
 -     },
 -     es6: {
 -         globals: newGlobals2015,
 -         parserOptions: {
 -             ecmaVersion: 6
 -         }
 -     },
 -     es2015: {
 -         globals: newGlobals2015,
 -         parserOptions: {
 -             ecmaVersion: 6
 -         }
 -     },
 -     es2016: {
 -         globals: newGlobals2015,
 -         parserOptions: {
 -             ecmaVersion: 7
 -         }
 -     },
 -     es2017: {
 -         globals: { ...newGlobals2015, ...newGlobals2017 },
 -         parserOptions: {
 -             ecmaVersion: 8
 -         }
 -     },
 -     es2018: {
 -         globals: { ...newGlobals2015, ...newGlobals2017 },
 -         parserOptions: {
 -             ecmaVersion: 9
 -         }
 -     },
 -     es2019: {
 -         globals: { ...newGlobals2015, ...newGlobals2017 },
 -         parserOptions: {
 -             ecmaVersion: 10
 -         }
 -     },
 -     es2020: {
 -         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 },
 -         parserOptions: {
 -             ecmaVersion: 11
 -         }
 -     },
 -     es2021: {
 -         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
 -         parserOptions: {
 -             ecmaVersion: 12
 -         }
 -     },
 -     es2022: {
 -         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
 -         parserOptions: {
 -             ecmaVersion: 13
 -         }
 -     },
 -     es2023: {
 -         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
 -         parserOptions: {
 -             ecmaVersion: 14
 -         }
 -     },
 -     es2024: {
 -         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
 -         parserOptions: {
 -             ecmaVersion: 15
 -         }
 -     },
 - 
 -     // Platforms
 -     browser: {
 -         globals: globals.browser
 -     },
 -     node: {
 -         globals: globals.node,
 -         parserOptions: {
 -             ecmaFeatures: {
 -                 globalReturn: true
 -             }
 -         }
 -     },
 -     "shared-node-browser": {
 -         globals: globals["shared-node-browser"]
 -     },
 -     worker: {
 -         globals: globals.worker
 -     },
 -     serviceworker: {
 -         globals: globals.serviceworker
 -     },
 - 
 -     // Frameworks
 -     commonjs: {
 -         globals: globals.commonjs,
 -         parserOptions: {
 -             ecmaFeatures: {
 -                 globalReturn: true
 -             }
 -         }
 -     },
 -     amd: {
 -         globals: globals.amd
 -     },
 -     mocha: {
 -         globals: globals.mocha
 -     },
 -     jasmine: {
 -         globals: globals.jasmine
 -     },
 -     jest: {
 -         globals: globals.jest
 -     },
 -     phantomjs: {
 -         globals: globals.phantomjs
 -     },
 -     jquery: {
 -         globals: globals.jquery
 -     },
 -     qunit: {
 -         globals: globals.qunit
 -     },
 -     prototypejs: {
 -         globals: globals.prototypejs
 -     },
 -     shelljs: {
 -         globals: globals.shelljs
 -     },
 -     meteor: {
 -         globals: globals.meteor
 -     },
 -     mongo: {
 -         globals: globals.mongo
 -     },
 -     protractor: {
 -         globals: globals.protractor
 -     },
 -     applescript: {
 -         globals: globals.applescript
 -     },
 -     nashorn: {
 -         globals: globals.nashorn
 -     },
 -     atomtest: {
 -         globals: globals.atomtest
 -     },
 -     embertest: {
 -         globals: globals.embertest
 -     },
 -     webextensions: {
 -         globals: globals.webextensions
 -     },
 -     greasemonkey: {
 -         globals: globals.greasemonkey
 -     }
 - }));
 
 
  |