Show More
Commit Description:
submission report
Commit Description:
submission report
References:
File last commit:
Show/Diff file:
Action:
node_modules/es-abstract/2016/ToUint8Clamp.js
| 24 lines
| 607 B
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var GetIntrinsic = require('../GetIntrinsic'); | ||||
var $Math = GetIntrinsic('%Math%'); | ||||
var ToNumber = require('./ToNumber'); | ||||
var $isNaN = require('../helpers/isNaN'); | ||||
var $floor = $Math.floor; | ||||
// https://www.ecma-international.org/ecma-262/6.0/#sec-touint8clamp | ||||
module.exports = function ToUint8Clamp(argument) { | ||||
var number = ToNumber(argument); | ||||
if ($isNaN(number) || number <= 0) { return 0; } | ||||
if (number >= 0xFF) { return 0xFF; } | ||||
var f = $floor(argument); | ||||
if (f + 0.5 < number) { return f + 1; } | ||||
if (number < f + 0.5) { return f; } | ||||
if (f % 2 !== 0) { return f + 1; } | ||||
return f; | ||||
}; | ||||