⚝
One Hat Cyber Team
⚝
Your IP:
172.22.0.1
Server IP:
151.80.20.34
Server:
Linux 794f04d97d5e 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64
Server Software:
Apache/2.4.62 (Debian)
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
nodejs
/
es-abstract
/
2019
/
View File Name :
AbstractRelationalComparison.js
'use strict'; var GetIntrinsic = require('get-intrinsic'); var $Number = GetIntrinsic('%Number%'); var $TypeError = GetIntrinsic('%TypeError%'); var $isNaN = require('../helpers/isNaN'); var $isFinite = require('../helpers/isFinite'); var IsStringPrefix = require('./IsStringPrefix'); var ToNumber = require('./ToNumber'); var ToPrimitive = require('./ToPrimitive'); var Type = require('./Type'); // https://262.ecma-international.org/9.0/#sec-abstract-relational-comparison module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { if (Type(LeftFirst) !== 'Boolean') { throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); } var px; var py; if (LeftFirst) { px = ToPrimitive(x, $Number); py = ToPrimitive(y, $Number); } else { py = ToPrimitive(y, $Number); px = ToPrimitive(x, $Number); } if (Type(px) === 'String' && Type(py) === 'String') { if (IsStringPrefix(py, px)) { return false; } if (IsStringPrefix(px, py)) { return true; } return px < py; // both strings, neither a prefix of the other. shortcut for steps 3 c-f } var nx = ToNumber(px); var ny = ToNumber(py); if ($isNaN(nx) || $isNaN(ny)) { return undefined; } if ($isFinite(nx) && $isFinite(ny) && nx === ny) { return false; } if (nx === Infinity) { return false; } if (ny === Infinity) { return true; } if (ny === -Infinity) { return false; } if (nx === -Infinity) { return true; } return nx < ny; // by now, these are both nonzero, finite, and not equal };