
Security News
CVE Volume Surges Past 48,000 in 2025 as WordPress Plugin Ecosystem Drives Growth
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.
especially
Advanced tools
Abstract operations and other functions drawn from the ECMAScript specification
Have you ever wanted to write a to-the-letter implementation of some ECMAScript spec function? Maybe you want to run tests against it; maybe you're just crazy and like self-hosting JavaScript in JavaScript. In either case, this is the package for you!
Especially has a small-but-growing collection of meta-textual and abstract operations drawn directly from the pages of the ECMAScript 2015 draft specification. From common things like Get to dealing with internal slots, Especially has you covered.
Especially has no main module (gasp). Instead, you'll require one of the top-level modules that contain the stuff you want.
@@iterator symbol."Object".A variety of math operations from the Algorithm Conventions section of the spec:
assert: ensures you pass it a boolean, then throws if it's not truedefine_built_in_data_property: a shortcut for defining a built-in data property with the usual property descriptor.make_slots(object, arrayOfSlotNames): call this to initialize an object's internal slots. Often referenced in the spec as "instances of (something) are initially created with the internal slots listed in (some table)."get_slot(object, name): get the value of an internal slot. Often referenced in the spec as "the value of (object)'s [[SlotName]] internal slot."set_slot(object, name): set the value of an internal slot. Often referenced in the spec as "Set (object)'s [[SlotName]] internal slot to (a value)."has_slot(object): check whether an object has an internal slot with the given name. Often referenced in the spec as "If (object) does not have a [[SlotName]] internal slot."One well-known symbol is included:
"@@iterator" will give you a symbol that is used by GetIterator. (It is the same as V8's default Symbol.iterator.)"@@species" will give the symbol that is used by SpeciesConstructor. (It is a freshly-minted symbol, since V8 doesn't have Symbol.species yet.)Some of the well-known intrinsic objects are included by name, e.g. "%ObjectPrototype%". These are used by GetPrototypeFromConstructor and related operations.
Especially is meant to run in io.js (not Node.js™). It uses certain ES2015 features only implemented in modern V8.
Install it from npm into your project with npm install especially.
You can see examples of it in use in the reference implementation of the ES2015 promises specification.
FAQs
Abstract operations and other functions drawn from the ECMAScript specification
We found that especially demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.

Security News
Socket CEO Feross Aboukhadijeh joins Insecure Agents to discuss CVE remediation and why supply chain attacks require a different security approach.

Security News
Tailwind Labs laid off 75% of its engineering team after revenue dropped 80%, as LLMs redirect traffic away from documentation where developers discover paid products.