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
Seonghyun Kim 35c6836f2e Divide get object inline cache into 2 case
Divice get object inline cache into simple and complex cases
the simple case should test just one object chain with plain data property
the complex case should consider every case of inline cache

Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
2022-04-12 12:01:08 +09:00
.github Fix a minor bug in DoubleInEncodedValue conversion 2022-04-08 10:25:12 +09:00
build Fix a minor bug in DoubleInEncodedValue conversion 2022-04-08 10:25:12 +09:00
docs Initial debugger documentation 2021-09-08 18:09:48 +09:00
src Divide get object inline cache into 2 case 2022-04-12 12:01:08 +09:00
test Implement scope chain property enumeration in the debugger 2022-03-28 17:15:34 +09:00
third_party Update version of WASM engine 2022-02-22 10:06:37 +09:00
tools Fix a minor bug in DoubleInEncodedValue conversion 2022-04-08 10:25:12 +09:00
.clang-format Apply clang-formatting 2016-12-08 14:53:01 +09:00
.gitignore Import WASM interpreter 2020-11-13 10:12:07 +09:00
.gitlab-ci.yml Move tools/vendortest to js_vendor_tc (#74) 2018-05-15 09:09:57 +09:00
.gitmodules Add WASM spec test 2020-11-13 15:13:54 +09:00
CMakeLists.txt Rollback CMake minimum version to 2.8 2021-03-23 16:10:11 +09:00
Jenkinsfile Fix clang build errors 2021-09-29 14:35:44 +09:00
LICENSE Update README 2020-08-25 11:38:57 +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
README.md Enable coverity scan 2020-09-03 10:53:06 +09:00
RELEASE_VERSION Add Escargot version configuration 2020-10-15 18:59:15 +09:00

Escargot

License GitHub release (latestSemVer) Build status Actions Status Coverity Scan 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=shell -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=[ shared_lib | static_lib | shell | shell_test | cctest ]
    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

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

tools/run-tests.py --arch=x86_64 spidermonkey test262 v8