What is es-abstract?
The es-abstract npm package provides utility functions for ECMAScript language abstract operations. These operations are the fundamental building blocks of the ECMAScript specification, which JavaScript and other related languages are based on. The package includes methods for type conversion, manipulation of objects, and working with language semantics as defined in various ECMAScript editions.
What are es-abstract's main functionalities?
Type Conversion
Converts a value to a number as per ECMAScript abstract operation ToNumber.
const ES = require('es-abstract');
const value = '123';
const number = ES.ToNumber(value);
Object Manipulation
Gets an array of the own enumerable property names of an object.
const ES = require('es-abstract');
const obj = { a: 1 };
const keys = ES.EnumerableOwnNames(obj);
Working with Language Semantics
Calls a given function with a specific this value and arguments list.
const ES = require('es-abstract');
const result = ES.Call(Function.prototype.toString, () => {});
Other packages similar to es-abstract
lodash
Lodash is a popular utility library that offers a wide range of functions for manipulating objects, arrays, numbers, strings, etc. It is more focused on practical application development rather than strictly adhering to ECMAScript abstract operations.
core-js
Core-js is a modular standard library for JavaScript, which includes polyfills for ECMAScript features. It provides functionality similar to es-abstract in terms of implementing ECMAScript standards, but it also includes polyfills for newer language features.
#es-abstract
ECMAScript spec abstract operations.
When different versions of the spec conflict, the default export will be the latest version of the abstract operation.
All abstract operations will also be available under an es5
/es6
/es7
exported property if you require a specific version.
Example
var ES = require('es-abstract');
var assert = require('assert');
assert(ES.isCallable(function () {}));
assert(!ES.isCallable(/a/g));
Tests
Simply clone the repo, npm install
, and run npm test