This library exports a collection of bound native virtual methods - static methods of JavaScript standard built-in objects in their bound form - so that they can be used together with the proposed bind operator.
$ npm install bound-native-methodsimport * from 'bound-native-methods';
// Or, be more specific and cut down the build size: //
import {assign, keys} from 'bound-native-methods/object';0::isInteger();
// true[3, 6, 9]::max()::is(9);
// true{'2015-06-01T15:30:00.000Z': 300}::assign({'2015-07-01T15:30:00.000Z': 42})
::keys()
.map(x => x::toUnixOffset())
::toJSON();
// [1433172600000,1435764600000]Most static methods have been exported as is, but a few have been renamed or excluded to better fit the context:
| Bound Form | Native Form |
|---|---|
| ::assign() | Object.assign() |
| ::create() | Object.create() |
| ::defineProperties() | Object.defineProperties() |
| ::defineProperty() | Object.defineProperty() |
| ::freeze() | Object.freeze() |
| ::getOwnPropertyDescriptor() | Object.getOwnPropertyDescriptor() |
| ::getOwnPropertyNames() | Object.getOwnPropertyNames() |
| ::getOwnPropertySymbols() | Object.getOwnPropertySymbols() |
| ::getPrototype() | Object.getPrototypeOf() |
| ::is() | Object.is() |
| ::isExtensible() | Object.isExtensible() |
| ::isFrozen() | Object.isFrozen() |
| ::isSealed() | Object.isSealed() |
| ::keys() | Object.keys() |
| ::observe() | Object.observe() |
| ::preventExtensions() | Object.preventExtensions() |
| ::seal() | Object.seal() |
| ::setPrototype() | Object.setPrototypeOf() |
| Bound Form | Native Form |
|---|---|
| ::toSymbol() [1] | Symbol.for() |
| ::key() | Symbol.keyFor() |
| Bound Form | Native Form |
|---|---|
| ::isFinite() | Number.isFinite() |
| ::isInteger() | Number.isInteger() |
| ::isNaN() | Number.isNaN() |
| ::isSafeInteger() | Number.isSafeInteger() |
| ::toFloat() [1] | Number.parseFloat() |
| ::toInt() [1] | Number.parseInt() |
| Bound Form | Native Form |
|---|---|
| ::abs() | Math.abs() |
| ::acos() | Math.acos() |
| ::acosh() | Math.acosh() |
| ::asin() | Math.asin() |
| ::asinh() | Math.asinh() |
| ::atan() | Math.atan() |
| ::atan2() | Math.atan2() |
| ::atanh() | Math.atanh() |
| ::cbrt() | Math.cbrt() |
| ::ceil() | Math.ceil() |
| ::clz32() | Math.clz32() |
| ::cos() | Math.cos() |
| ::cosh() | Math.cosh() |
| ::exp() | Math.exp() |
| ::expm1() | Math.expm1() |
| ::floor() | Math.floor() |
| ::fround() | Math.fround() |
| ::hypot() | Math.hypot() |
| ::imul() | Math.imul() |
| ::log() | Math.log() |
| ::log10() | Math.log10() |
| ::log1p() | Math.log1p() |
| ::log2() | Math.log2() |
| ::max() | Math.max() |
| ::min() | Math.min() |
| × | Math.pow() [2] |
| × | Math.random() |
| ::round() | Math.round() |
| ::sign() | Math.sign() |
| ::sin() | Math.sin() |
| ::sinh() | Math.sinh() |
| ::sqrt() | Math.sqrt() |
| ::tan() | Math.tan() |
| ::tanh() | Math.tanh() |
| ::trunc() | Math.trunc() |
| Bound Form | Native Form |
|---|---|
| × | Date.UTC() |
| × | Date.now() |
| ::toUnixOffset() [1] | Date.parse() |
| Bound Form | Native Form |
|---|---|
| × | Array.from() |
| × | Array.of() |
| Native Form | Bound Form |
|---|---|
| JSON.parse() | ::toObject() [1] |
| JSON.stringify() | ::toJSON() [1] |
- Bound methods whose names start with "to..." are to be applied to strings (with the exception of
::toJSON()which can be applied to a variety of data types)- Please use the exponentiation operator
**instead
MIT © G. Kay Lee