Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
50654 views
1
'use strict';
2
3
var $isNaN = require('./helpers/isNaN');
4
var $isFinite = require('./helpers/isFinite');
5
6
var sign = require('./helpers/sign');
7
var mod = require('./helpers/mod');
8
9
var IsCallable = require('is-callable');
10
var toPrimitive = require('es-to-primitive/es5');
11
12
// https://es5.github.io/#x9
13
var ES5 = {
14
ToPrimitive: toPrimitive,
15
16
ToBoolean: function ToBoolean(value) {
17
return Boolean(value);
18
},
19
ToNumber: function ToNumber(value) {
20
return Number(value);
21
},
22
ToInteger: function ToInteger(value) {
23
var number = this.ToNumber(value);
24
if ($isNaN(number)) { return 0; }
25
if (number === 0 || !$isFinite(number)) { return number; }
26
return sign(number) * Math.floor(Math.abs(number));
27
},
28
ToInt32: function ToInt32(x) {
29
return this.ToNumber(x) >> 0;
30
},
31
ToUint32: function ToUint32(x) {
32
return this.ToNumber(x) >>> 0;
33
},
34
ToUint16: function ToUint16(value) {
35
var number = this.ToNumber(value);
36
if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }
37
var posInt = sign(number) * Math.floor(Math.abs(number));
38
return mod(posInt, 0x10000);
39
},
40
ToString: function ToString(value) {
41
return String(value);
42
},
43
ToObject: function ToObject(value) {
44
this.CheckObjectCoercible(value);
45
return Object(value);
46
},
47
CheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {
48
/* jshint eqnull:true */
49
if (value == null) {
50
throw new TypeError(optMessage || 'Cannot call method on ' + value);
51
}
52
return value;
53
},
54
IsCallable: IsCallable,
55
SameValue: function SameValue(x, y) {
56
if (x === y) { // 0 === -0, but they are not identical.
57
if (x === 0) { return 1 / x === 1 / y; }
58
return true;
59
}
60
return $isNaN(x) && $isNaN(y);
61
},
62
63
// http://www.ecma-international.org/ecma-262/5.1/#sec-8
64
Type: function Type(x) {
65
if (x === null) {
66
return 'Null';
67
}
68
if (typeof x === 'undefined') {
69
return 'Undefined';
70
}
71
if (typeof x === 'function' || typeof x === 'object') {
72
return 'Object';
73
}
74
if (typeof x === 'number') {
75
return 'Number';
76
}
77
if (typeof x === 'boolean') {
78
return 'Boolean';
79
}
80
if (typeof x === 'string') {
81
return 'String';
82
}
83
}
84
};
85
86
module.exports = ES5;
87
88