This commit is contained in:
84
node_modules/@petamoriken/float16/lib/_util/spec.cjs
generated
vendored
Normal file
84
node_modules/@petamoriken/float16/lib/_util/spec.cjs
generated
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.IsDetachedBuffer = IsDetachedBuffer;
|
||||
exports.SpeciesConstructor = SpeciesConstructor;
|
||||
exports.ToIntegerOrInfinity = ToIntegerOrInfinity;
|
||||
exports.ToLength = ToLength;
|
||||
exports.defaultCompare = defaultCompare;
|
||||
var _is = require("./is.cjs");
|
||||
var _messages = require("./messages.cjs");
|
||||
var _primordials = require("./primordials.cjs");
|
||||
function ToIntegerOrInfinity(target) {
|
||||
const number = +target;
|
||||
if ((0, _primordials.NumberIsNaN)(number) || number === 0) {
|
||||
return 0;
|
||||
}
|
||||
return (0, _primordials.MathTrunc)(number);
|
||||
}
|
||||
function ToLength(target) {
|
||||
const length = ToIntegerOrInfinity(target);
|
||||
if (length < 0) {
|
||||
return 0;
|
||||
}
|
||||
return length < _primordials.MAX_SAFE_INTEGER ? length : _primordials.MAX_SAFE_INTEGER;
|
||||
}
|
||||
function SpeciesConstructor(target, defaultConstructor) {
|
||||
if (!(0, _is.isObject)(target)) {
|
||||
throw (0, _primordials.NativeTypeError)(_messages.THIS_IS_NOT_AN_OBJECT);
|
||||
}
|
||||
const constructor = target.constructor;
|
||||
if (constructor === undefined) {
|
||||
return defaultConstructor;
|
||||
}
|
||||
if (!(0, _is.isObject)(constructor)) {
|
||||
throw (0, _primordials.NativeTypeError)(_messages.THE_CONSTRUCTOR_PROPERTY_VALUE_IS_NOT_AN_OBJECT);
|
||||
}
|
||||
const species = constructor[_primordials.SymbolSpecies];
|
||||
if (species == null) {
|
||||
return defaultConstructor;
|
||||
}
|
||||
return species;
|
||||
}
|
||||
function IsDetachedBuffer(buffer) {
|
||||
if ((0, _is.isSharedArrayBuffer)(buffer)) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
(0, _primordials.ArrayBufferPrototypeSlice)(buffer, 0, 0);
|
||||
return false;
|
||||
} catch (e) {}
|
||||
return true;
|
||||
}
|
||||
function defaultCompare(x, y) {
|
||||
const isXNaN = (0, _primordials.NumberIsNaN)(x);
|
||||
const isYNaN = (0, _primordials.NumberIsNaN)(y);
|
||||
if (isXNaN && isYNaN) {
|
||||
return 0;
|
||||
}
|
||||
if (isXNaN) {
|
||||
return 1;
|
||||
}
|
||||
if (isYNaN) {
|
||||
return -1;
|
||||
}
|
||||
if (x < y) {
|
||||
return -1;
|
||||
}
|
||||
if (x > y) {
|
||||
return 1;
|
||||
}
|
||||
if (x === 0 && y === 0) {
|
||||
const isXPlusZero = (0, _primordials.ObjectIs)(x, 0);
|
||||
const isYPlusZero = (0, _primordials.ObjectIs)(y, 0);
|
||||
if (!isXPlusZero && isYPlusZero) {
|
||||
return -1;
|
||||
}
|
||||
if (isXPlusZero && !isYPlusZero) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user