From 1a0c7edebacc76a70e57dfd494e24420fa77b56b Mon Sep 17 00:00:00 2001 From: Luca Matei Pintilie Date: Tue, 18 Oct 2022 15:33:35 +0200 Subject: feat: introduce navigator.language (#12322) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Link to the spec: https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-language-dev Co-authored-by: Bartek IwaƄczuk --- runtime/js/99_main.js | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'runtime/js') diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index 0a65cadee..a123fc24f 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -335,7 +335,7 @@ delete Intl.v8BreakIterator; const navigator = webidl.createBranded(Navigator); - let numCpus, userAgent; + let numCpus, userAgent, language; ObjectDefineProperties(Navigator.prototype, { gpu: { @@ -362,6 +362,22 @@ delete Intl.v8BreakIterator; return userAgent; }, }, + language: { + configurable: true, + enumerable: true, + get() { + webidl.assertBranded(this, NavigatorPrototype); + return language; + }, + }, + languages: { + configurable: true, + enumerable: true, + get() { + webidl.assertBranded(this, NavigatorPrototype); + return [language]; + }, + }, }); const NavigatorPrototype = Navigator.prototype; @@ -393,6 +409,22 @@ delete Intl.v8BreakIterator; webidl.assertBranded(this, WorkerNavigatorPrototype); return numCpus; }, + language: { + configurable: true, + enumerable: true, + get() { + webidl.assertBranded(this, WorkerNavigatorPrototype); + return language; + }, + }, + languages: { + configurable: true, + enumerable: true, + get() { + webidl.assertBranded(this, WorkerNavigatorPrototype); + return [language]; + }, + }, }, }); const WorkerNavigatorPrototype = WorkerNavigator.prototype; @@ -705,6 +737,7 @@ delete Intl.v8BreakIterator; numCpus = runtimeOptions.cpuCount; userAgent = runtimeOptions.userAgent; + language = runtimeOptions.locale; const internalSymbol = Symbol("Deno.internal"); @@ -793,6 +826,7 @@ delete Intl.v8BreakIterator; location.setLocationHref(runtimeOptions.location); numCpus = runtimeOptions.cpuCount; + language = runtimeOptions.locale; globalThis.pollForMessages = pollForMessages; -- cgit v1.2.3