diff --git a/docs/rules/no-unsupported-features/es-builtins.md b/docs/rules/no-unsupported-features/es-builtins.md index 05020767..7bc561eb 100644 --- a/docs/rules/no-unsupported-features/es-builtins.md +++ b/docs/rules/no-unsupported-features/es-builtins.md @@ -67,6 +67,7 @@ The `"ignores"` option accepts an array of the following strings. - `"BigInt64Array"` - `"BigUint64Array"` - `"Promise.allSettled"` +- `"globalThis"` **ES2019:** diff --git a/lib/rules/no-unsupported-features/es-builtins.js b/lib/rules/no-unsupported-features/es-builtins.js index 9df920ba..9b1a64d8 100644 --- a/lib/rules/no-unsupported-features/es-builtins.js +++ b/lib/rules/no-unsupported-features/es-builtins.js @@ -128,6 +128,9 @@ const trackMap = { SharedArrayBuffer: { [READ]: { supported: "8.10.0" }, }, + globalThis: { + [READ]: { supported: "12.0.0" }, + }, }, } diff --git a/tests/lib/rules/no-unsupported-features/es-builtins.js b/tests/lib/rules/no-unsupported-features/es-builtins.js index 8d4236d8..5653ffdc 100644 --- a/tests/lib/rules/no-unsupported-features/es-builtins.js +++ b/tests/lib/rules/no-unsupported-features/es-builtins.js @@ -2228,5 +2228,48 @@ ruleTester.run( }, ], }, + { + keyword: "globalThis", + valid: [ + { + code: "(function(globalThis) { globalThis }(a))", + options: [{ version: "12.0.0" }], + }, + { + code: "globalThis", + options: [{ version: "12.0.0" }], + }, + ], + invalid: [ + { + code: "globalThis", + options: [{ version: "11.9.9" }], + errors: [ + { + messageId: "unsupported", + data: { + name: "globalThis", + supported: "12.0.0", + version: "11.9.9", + }, + }, + ], + }, + { + code: "function wrap() { globalThis }", + options: [{ version: "11.9.9" }], + errors: [ + { + messageId: "unsupported", + data: { + name: "globalThis", + supported: "12.0.0", + version: "11.9.9", + }, + }, + ], + }, + ], + }, ]) )