Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

esper.js

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

esper.js

Esper javascript interperter.

  • 0.4.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
13
increased by1200%
Maintainers
1
Weekly downloads
 
Created
Source

esper.js

A javascript self-interpreter with a focus on sandboxed execution and runtime introspection.

NPM version NPM downloads MIT License Build Status Coverage Status

Demo | Run Tests | API Docs

Usage

At the most basic level, esper's eval function can be used as a safe replacement for the native eval function.

var four = esper.eval('2+2');

More functionality is available via an Engine object.

var engine = esper({
	
});

engine.addGlobal('two', 2);
engine.load('2+two');
var result = engine.runSync();
result.toNative() === 4;

Options

The esper() function takes an options object as it only parameter.

strict

Type: boolean Default: false

If true, force all code to be run in strict mode.

foreignObjectMode

Type: string Default: link

addInternalStack

Type: boolean Default: false

If true, the interpreter's internal stack will be added to the stack trace of exceptions.

executionLimit

Type: Integer Default: Infinity

The number of AST nodes methods like .runSync() will evaluate before giving up. Set this to prevent infinite loops.

exposeEsperGlobal

Type: boolean Default: true

Creates a global named Esper inside the interpreter with introspection and metaprogramming functions.

Building

Esper utilizes the webpack build system to create a single file suitable for use in the browser.

--env.profile=<profile>
ProfileUse
webThe default profile. Creates an single ES5 compatible file with self contained regenerator-runtime and es6 polyfills.
modernCreates an single ES6 compatible file. More performance than web, but requires a modern browser.
nashornCrates a single file targeting the Java Nashorn engine. Uses Nashorn's parser instead of embedded esprima.
--env.test

Creates a test builds that embeds the unit tests. Including this file in a <script> tag will take over the page and display the test output in real time.

--env.min

Minify the resulting build using UglifyJS.

License

The MIT License

Contributing

If you'd like to contribute, please sign the CodeCombat contributor license agreement so we can accept your pull requests.

Checklist for contributing:

  • All tests pass. npm run test
  • No code style problems. npm run style
  • Code coverage increased. npm run cover
  • webpack --test build passes test in browser.

Big Thanks

Cross-browser Testing Platform and Open Source <3 Provided by Sauce Labs

Keywords

FAQs

Package last updated on 27 Oct 2019

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc