Escargot is a lightweight JavaScript engine designed specifically for resource-constrained environments.
  • C++ 91.5%
  • Python 4.1%
  • JavaScript 2%
  • Java 1.7%
  • CMake 0.5%
  • Other 0.2%
Find a file
Robert Fancsik 387a30267c Simplify isRegExpObject check (#399)
Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
2019-09-02 20:26:59 +09:00
build Fix build error on tizen (#404) 2019-09-02 12:56:00 +09:00
docs Update coding style guide (#296) 2019-07-03 15:42:41 +09:00
packaging Change default license to LGPL license (#60) 2018-03-07 18:38:28 +09:00
src Simplify isRegExpObject check (#399) 2019-09-02 20:26:59 +09:00
test Pass more tests in test262 (#403) 2019-09-02 12:51:17 +09:00
third_party Migrate to new bdwgc 8.0 GCutil & use cmake on building gc (#385) 2019-08-21 18:14:36 +09:00
tools Use hasProperty instead of get in ObjectEnvironmentRecord (#405) 2019-09-02 18:09:13 +09:00
.babelrc Add ecma_6 into spidermonkey vendortest 2017-01-25 13:08:19 +09:00
.clang-format Apply clang-formatting 2016-12-08 14:53:01 +09:00
.gitignore Include TC driver files (#314) 2019-07-15 15:47:08 +09:00
.gitlab-ci.yml Move tools/vendortest to js_vendor_tc (#74) 2018-05-15 09:09:57 +09:00
.gitmodules Optimize execution speed (#374) 2019-08-19 11:23:23 +09:00
.travis.yml Move escargot internal tests to Samsung/js_vendor_tc repo (#395) 2019-08-29 14:35:00 +09:00
CMakeLists.txt Enhance develoment productivity (#366) 2019-08-14 11:10:21 +09:00
Jenkinsfile Move escargot internal tests to Samsung/js_vendor_tc repo (#395) 2019-08-29 14:35:00 +09:00
LICENSE.Apache-2.0 Change default license to LGPL license (#60) 2018-03-07 18:38:28 +09:00
LICENSE.BSD-2-Clause Change default license to LGPL license (#60) 2018-03-07 18:38:28 +09:00
LICENSE.BSD-3-Clause Change default license to LGPL license (#60) 2018-03-07 18:38:28 +09:00
LICENSE.LGPL-2.1+ Change default license to LGPL license (#60) 2018-03-07 18:38:28 +09:00
LICENSE.MIT Change default license to LGPL license (#60) 2018-03-07 18:38:28 +09:00
LICENSE.MPL-2.0 Change default license to LGPL license (#60) 2018-03-07 18:38:28 +09:00
package.json Add ecma_6 into spidermonkey vendortest 2017-01-25 13:08:19 +09:00
README.md Update testing environment (#376) 2019-08-19 13:20:59 +09:00
sonar-project.properties Update submodule addresses (#292) 2019-06-19 16:50:59 +09:00

Escargot

Build status

Prerequisites

On Ubuntu Linux

General build prerequisites:

sudo apt-get install autoconf automake cmake libtool libicu-dev ninja-build

Prerequisites for x86-64-to-x86 compilation:

sudo apt-get install gcc-multilib g++-multilib
sudo apt-get install libicu-dev:i386

On macOS

brew install autoconf automake cmake icu4c libtool ninja pkg-config

Note: For later build steps (cmake, pkg-config) to find ICU libraries, you may need to set the PKG_CONFIG_PATH environment variable, as instructed by brew. E.g.:

export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"

Build Escargot

git clone https://github.com/Samsung/escargot.git
cd escargot
git submodule update --init third_party
cmake -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x64 -DESCARGOT_MODE=release -DESCARGOT_OUTPUT=bin -GNinja
ninja

Build options

The following build options are supported when generating ninja rules using cmake.

  • -DESCARGOT_HOST=[ linux | tizen_obs | darwin ]
    Compile Escargot for Linux, Tizen, or macOS platform
  • -DESCARGOT_ARCH=[ x64 | x86 | arm | i686 | aarch64 ]
    Compile Escargot for each architecture
  • -DESCARGOT_MODE=[ debug | release ]
    Compile Escargot for either release or debug mode
  • -DESCARGOT_OUTPUT=[ bin | shared_lib | static_lib ]
    Define target output type
  • -DESCARGOT_LIBICU_SUPPORT=[ ON | OFF ]
    Enable libicu library if set ON. (Optional, default = ON)

Testing

First, get benchmarks and tests:

git submodule update --init

Benchmarks

Prerequisite for SpiderMonkey:

sudo apt-get install npm
npm install

Test run for each benchmark (Sunspider, Octane, V8, Chakracore, test262, SpiderMonkey, etc.):

tools/run-tests.py