|  | 
| 2 | 2 | 
 | 
| 3 | 3 | 'use strict'; | 
| 4 | 4 | 
 | 
| 5 |  | -const common = require('../common'); | 
|  | 5 | +/* eslint node-core/require-common-first: 0 */ | 
|  | 6 | + | 
| 6 | 7 | const assert = require('assert'); | 
|  | 8 | + | 
|  | 9 | +{ | 
|  | 10 | + | 
|  | 11 | +  // Ensures `navigator` has not been evaluated yet | 
|  | 12 | +  assert.strictEqual(require.resolve('../common') in require.cache, false); | 
|  | 13 | + | 
|  | 14 | +  const { version, platform, arch } = process; | 
|  | 15 | +  try { | 
|  | 16 | +    let called = false; | 
|  | 17 | +    Object.defineProperty(process, 'arch', { get() { called += 'arch|'; return arch; } }); | 
|  | 18 | +    Object.defineProperty(process, 'platform', { get() { called = 'platform|'; return platform; } }); | 
|  | 19 | +    Object.defineProperty(process, 'version', { get() { called = 'version|'; return version; } }); | 
|  | 20 | + | 
|  | 21 | +    navigator; // eslint-disable-line no-unused-expressions | 
|  | 22 | + | 
|  | 23 | +    assert.strictEqual( | 
|  | 24 | +      called, | 
|  | 25 | +      false | 
|  | 26 | +    ); | 
|  | 27 | +  } finally { | 
|  | 28 | +    Object.defineProperty(process, 'arch', { value: arch }); | 
|  | 29 | +    Object.defineProperty(process, 'platform', { value: platform }); | 
|  | 30 | +    Object.defineProperty(process, 'version', { value: version }); | 
|  | 31 | +  } | 
|  | 32 | +} | 
|  | 33 | + | 
|  | 34 | +const common = require('../common'); | 
| 7 | 35 | const { getNavigatorPlatform } = require('internal/navigator'); | 
| 8 | 36 | const { execFile } = require('child_process'); | 
| 9 | 37 | 
 | 
| @@ -57,23 +85,23 @@ if (process.platform === 'darwin') { | 
| 57 | 85 |   assert.strictEqual(navigator.platform, `${process.platform[0].toUpperCase()}${process.platform.slice(1)} ${process.arch}`); | 
| 58 | 86 | } | 
| 59 | 87 | 
 | 
| 60 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'x64', platform: 'darwin' }), 'MacIntel'); | 
| 61 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'arm64', platform: 'darwin' }), 'MacIntel'); | 
| 62 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'ia32', platform: 'linux' }), 'Linux i686'); | 
| 63 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'x64', platform: 'linux' }), 'Linux x86_64'); | 
| 64 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'arm64', platform: 'linux' }), 'Linux arm64'); | 
| 65 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'x64', platform: 'win32' }), 'Win32'); | 
| 66 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'arm64', platform: 'win32' }), 'Win32'); | 
| 67 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'ia32', platform: 'freebsd' }), 'FreeBSD i386'); | 
| 68 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'x64', platform: 'freebsd' }), 'FreeBSD amd64'); | 
| 69 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'arm64', platform: 'freebsd' }), 'FreeBSD arm64'); | 
| 70 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'ia32', platform: 'openbsd' }), 'OpenBSD i386'); | 
| 71 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'x64', platform: 'openbsd' }), 'OpenBSD amd64'); | 
| 72 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'arm64', platform: 'openbsd' }), 'OpenBSD arm64'); | 
| 73 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'ia32', platform: 'sunos' }), 'SunOS i86pc'); | 
| 74 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'x64', platform: 'sunos' }), 'SunOS x64'); | 
| 75 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'ppc', platform: 'aix' }), 'AIX'); | 
| 76 |  | -assert.strictEqual(getNavigatorPlatform({ arch: 'x64', platform: 'reactos' }), 'Reactos x64'); | 
|  | 88 | +assert.strictEqual(getNavigatorPlatform('x64', 'darwin'), 'MacIntel'); | 
|  | 89 | +assert.strictEqual(getNavigatorPlatform('arm64', 'darwin'), 'MacIntel'); | 
|  | 90 | +assert.strictEqual(getNavigatorPlatform('ia32', 'linux'), 'Linux i686'); | 
|  | 91 | +assert.strictEqual(getNavigatorPlatform('x64', 'linux'), 'Linux x86_64'); | 
|  | 92 | +assert.strictEqual(getNavigatorPlatform('arm64', 'linux'), 'Linux arm64'); | 
|  | 93 | +assert.strictEqual(getNavigatorPlatform('x64', 'win32'), 'Win32'); | 
|  | 94 | +assert.strictEqual(getNavigatorPlatform('arm64', 'win32'), 'Win32'); | 
|  | 95 | +assert.strictEqual(getNavigatorPlatform('ia32', 'freebsd'), 'FreeBSD i386'); | 
|  | 96 | +assert.strictEqual(getNavigatorPlatform('x64', 'freebsd'), 'FreeBSD amd64'); | 
|  | 97 | +assert.strictEqual(getNavigatorPlatform('arm64', 'freebsd'), 'FreeBSD arm64'); | 
|  | 98 | +assert.strictEqual(getNavigatorPlatform('ia32', 'openbsd'), 'OpenBSD i386'); | 
|  | 99 | +assert.strictEqual(getNavigatorPlatform('x64', 'openbsd'), 'OpenBSD amd64'); | 
|  | 100 | +assert.strictEqual(getNavigatorPlatform('arm64', 'openbsd'), 'OpenBSD arm64'); | 
|  | 101 | +assert.strictEqual(getNavigatorPlatform('ia32', 'sunos'), 'SunOS i86pc'); | 
|  | 102 | +assert.strictEqual(getNavigatorPlatform('x64', 'sunos'), 'SunOS x64'); | 
|  | 103 | +assert.strictEqual(getNavigatorPlatform('ppc', 'aix'), 'AIX'); | 
|  | 104 | +assert.strictEqual(getNavigatorPlatform('x64', 'reactos'), 'Reactos x64'); | 
| 77 | 105 | 
 | 
| 78 | 106 | assert.strictEqual(typeof navigator.language, 'string'); | 
| 79 | 107 | assert.strictEqual(navigator.language.length !== 0, true); | 
|  | 
0 commit comments