Latest Socket ResearchMalicious Chrome Extension Performs Hidden Affiliate Hijacking.Details
Socket
Book a DemoInstallSign in
Socket

especially

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

especially

Abstract operations and other functions drawn from the ECMAScript specification

Source
npmnpm
Version
1.4.0
Version published
Weekly downloads
195
-22.31%
Maintainers
1
Weekly downloads
 
Created
Source

ECMAScript Spec Operations, in ECMAScript

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 6 draft specification. From common things like Get to dealing with internal slots, Especially has you covered.

APIs

Especially has no main module (gasp). Instead, you'll require one of the top-level modules that contain the stuff you want.

require("especially/abstract-operations")

require("especially/meta")

  • assert: ensures you pass it a boolean, then throws if it's not true
  • define_built_in_data_property: a shortcut for defining a built-in data property with the usual property descriptor.
  • Internal slot management:
    • 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."

require("especially/well-known-symbols")

A few well-known symbol are included:

  • "@@create" will give you a symbol that is used by OrdinaryConstruct and related operations.
  • "@@iterator" will give you a symbol that is used by GetIterator.

require("especially/intrinsics")

Some of the well-known intrinsic objects are included by name, e.g. "%ObjectPrototype%". These are used by GetPrototypeFromConstructor and related operations.

Usage Notes

Especially is meant to run in Node.js 0.11.9+, at least for now. It uses certain ES6 features so far only implemented in bleeding-edge V8, with the --harmony flag turned on.

Install it from npm into your project with npm install especially. And don't forget to run your program, or your tests, with the --harmony flag.

You can see examples of it in use in the reference implementation of the ES6 promises specification.

Keywords

ecmascript

FAQs

Package last updated on 30 Jul 2014

Did you know?

Socket

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.

Install

Related posts