Skip to content

Bound native virtual methods to be used together with ES7 :: bind operator.

License

Notifications You must be signed in to change notification settings

gsklee/bound-native-methods

Repository files navigation

Bound Native Methods

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.

Install

$ npm install bound-native-methods

Usage

import * 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]

API

Most static methods have been exported as is, but a few have been renamed or excluded to better fit the context:

Object

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()

Symbol

Bound Form Native Form
::toSymbol() [1] Symbol.for()
::key() Symbol.keyFor()

Number

Bound Form Native Form
::isFinite() Number.isFinite()
::isInteger() Number.isInteger()
::isNaN() Number.isNaN()
::isSafeInteger() Number.isSafeInteger()
::toFloat() [1] Number.parseFloat()
::toInt() [1] Number.parseInt()

Math

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()

Date

Bound Form Native Form
× Date.UTC()
× Date.now()
::toUnixOffset() [1] Date.parse()

Array

Bound Form Native Form
× Array.from()
× Array.of()

ArrayBuffer

JSON

Native Form Bound Form
JSON.parse() ::toObject() [1]
JSON.stringify() ::toJSON() [1]
Notes:
  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)
  2. Please use the exponentiation operator ** instead

License

MIT © G. Kay Lee

About

Bound native virtual methods to be used together with ES7 :: bind operator.

Resources

License

Stars

Watchers

Forks

Packages

No packages published