You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Sami Vaarala c55b0f2c1c ditz issue update 11 years ago
api-testcases api testcase for duk_pcall(), add some prints for diagnosis 11 years ago
bugs ditz issue update 11 years ago
doc update test262-known-issues: function statements no longer cause errors 11 years ago
ecmascript-testcases test case for function statement semantics 11 years ago
examples avoid ToString() coercion of final Program result in non-interactive mode, as it may itself throw a TypeError (e.g. failed to coerce with [[DefaultValue]]) 11 years ago
licenses murmurhash2 license 12 years ago
misc add c overflow misc test 11 years ago
references Ecmascript E5 and E5.1 specifications as references (license allows redistribution) 12 years ago
runtests runtests: knownbug -> knownissue, fixme note on use strict 11 years ago
src add support for function statements with V8-like semantics (DUK_OPT_NO_FUNC_STMT to disable) 11 years ago
website add a guide section on custom behavior 11 years ago
.gitignore add stripped files to ignore too 12 years ago
LICENSE.txt add a basic README and LICENSE 12 years ago
Makefile add emscripten options; now hello world works except for one invalid regexp 11 years ago
README.md makefile: rename test -> ecmatest, make 'test' a multi-test target, add an emscripten test placeholder 11 years ago
README.txt.dist remove full dist README, update source dist README 11 years ago
RELEASES.txt release note update 11 years ago
combine_src.py make combining sources deterministic so that combined sources diff better 11 years ago
filter262log.py improve test262 filtered output 11 years ago
make_dist.sh fix dist to use combined duk_initjs.js 11 years ago
underscore-test-shim.js underscore test shim fix, jsonxEnc -> jxEnc 11 years ago
underscore_test add valgrind support to underscore_test 11 years ago

README.md

Duktape

Introduction

Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint.

Duktape is easy to integrate into a C/C++ project: add duktape.c and duktape.h to your build, and use the Duktape API to call Ecmascript functions from C code and vice versa.

Main features:

  • Embeddable, portable, compact
  • Ecmascript E5/E5.1 compliant
  • Built-in regular expression engine
  • Built-in Unicode support
  • Minimal platform dependencies
  • Combined reference counting and mark-and-sweep garbage collection with finalization
  • Liberal license

See duktape.org for packaged end-user downloads and documentation.

Have fun!

About this repository

This repository is intended for Duktape developers only, and contains Duktape internals: test cases, internal documentation, sources for the duktape.org web site, etc.

Getting started: end user

When embedding Duktape in your application you should use the packaged source distributables available from duktape.org/download.html.

However, if you really want to use a bleeding edge version:

$ git clone https://github.com/svaarala/duktape.git
$ cd duktape
$ make dist-src

Then use duktape-<version>.tar.xz like a normal source distributable.

Getting started: developing Duktape

If you intend to change Duktape internals, run test cases, etc:

# Install NodeJS and npm
$ sudo apt-get install nodejs npm

# Compile the command line tool ('duk')
$ git clone https://github.com/svaarala/duktape.git
$ cd duktape
$ make

# Run Ecmascript and API testcases
$ make ecmatest
$ make apitest
$ make regfuzztest
$ make underscoretest  # see doc/underscore-status.txt
$ make test262test     # see doc/test262-status.txt

Note: the repo Makefile is intended for Linux developer use, it is not a multi-platform "end user" Makefile. In particular, the Makefile is not intended to work on e.g. OSX or Windows. The source distributable has more user-friendly Makefile examples, but you should normally simply write your own Makefile when integrating Duktape into your program.

License

See LICENSE.txt.