29 lines
886 B
JavaScript
29 lines
886 B
JavaScript
|
'use strict';
|
||
|
var globalThis = require('../internals/global-this');
|
||
|
var userAgent = require('../internals/environment-user-agent');
|
||
|
|
||
|
var process = globalThis.process;
|
||
|
var Deno = globalThis.Deno;
|
||
|
var versions = process && process.versions || Deno && Deno.version;
|
||
|
var v8 = versions && versions.v8;
|
||
|
var match, version;
|
||
|
|
||
|
if (v8) {
|
||
|
match = v8.split('.');
|
||
|
// in old Chrome, versions of V8 isn't V8 = Chrome / 10
|
||
|
// but their correct versions are not interesting for us
|
||
|
version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
|
||
|
}
|
||
|
|
||
|
// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
|
||
|
// so check `userAgent` even if `.v8` exists, but 0
|
||
|
if (!version && userAgent) {
|
||
|
match = userAgent.match(/Edge\/(\d+)/);
|
||
|
if (!match || match[1] >= 74) {
|
||
|
match = userAgent.match(/Chrome\/(\d+)/);
|
||
|
if (match) version = +match[1];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = version;
|