diff --git a/.clang-format b/.clang-format deleted file mode 100644 index 65de78321f..0000000000 --- a/.clang-format +++ /dev/null @@ -1,87 +0,0 @@ ---- -Language: Cpp -AlignAfterOpenBracket: Align -AlignConsecutiveMacros: true -AlignConsecutiveAssignments: false -AlignConsecutiveDeclarations: false -AlignEscapedNewlines: Left -AlignOperands: true -AlignTrailingComments: false -AllowAllArgumentsOnNextLine: false -AllowAllParametersOfDeclarationOnNextLine: false -AllowShortBlocksOnASingleLine: Never -AllowShortCaseLabelsOnASingleLine: false -AllowShortFunctionsOnASingleLine: None -AllowShortIfStatementsOnASingleLine: Never -AllowShortLoopsOnASingleLine: false -AlwaysBreakAfterReturnType: AllDefinitions -AlwaysBreakBeforeMultilineStrings: false -BinPackArguments: false -BinPackParameters: false -BraceWrapping: - AfterCaseLabel: true - AfterControlStatement: Always - AfterEnum: true - AfterFunction: true - AfterStruct: true - AfterUnion: true - AfterExternBlock: false - BeforeElse: true - IndentBraces: false - SplitEmptyFunction: true -BreakBeforeBinaryOperators: NonAssignment -BreakBeforeBraces: Custom -BreakBeforeTernaryOperators: true -BreakStringLiterals: true -ColumnLimit: 120 -ContinuationIndentWidth: 2 -Cpp11BracedListStyle: false -DeriveLineEnding: true -DerivePointerAlignment: true -DisableFormat: false -ExperimentalAutoDetectBinPacking: true -IncludeBlocks: Regroup -IncludeCategories: - - Regex: '' - Priority: 0 - - Regex: '<[-./a-z]*>' - Priority: 1 - - Regex: '"jerryscript[-.a-z]*"' - Priority: 2 - - Regex: '"ecma[-.a-z]*"' - Priority: 3 - - Regex: '.*' - Priority: 4 -IndentCaseLabels: true -IndentGotoLabels: false -IndentPPDirectives: None -IndentWidth: 2 -IndentWrappedFunctionNames: false -KeepEmptyLinesAtTheStartOfBlocks: false -MacroBlockBegin: '' -MacroBlockEnd: '' -MaxEmptyLinesToKeep: 1 -PointerAlignment: Right -ReflowComments: true -SortIncludes: true -SpaceAfterCStyleCast: true -SpaceAfterLogicalNot: false -SpaceBeforeAssignmentOperators: true -SpaceBeforeParens: Always -SpaceInEmptyBlock: false -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 1 -SpacesInConditionalStatement: false -SpacesInCStyleCastParentheses: false -SpacesInParentheses: false -SpacesInSquareBrackets: false -SpaceBeforeSquareBrackets: false -Standard: Auto -StatementMacros: - - JERRY_ASSERT - - JERRY_STATIC_ASSERT - - JERRY_UNREACHABLE -TabWidth: 0 -UseCRLF: false -UseTab: Never -... diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 569c9435ba..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve - ---- - -First of all, when reporting a bug, give the issue a descriptive title. - -In the body of the issue, optionally give a free-form text description of the -bug. Give the context necessary for others to understand the problem. - -Then, provide information necessary to reproduce the bug. -Omit sections that are irrelevant for the bug report, but note that information -like git revision, build platform, build command, and test case are required in -almost all cases. - -###### JerryScript revision -Identify the git hash(es) or tag(s) where the issue was observed. - -###### Build platform -Name the build platform. E.g., copy the output of -`echo "$(lsb_release -ds) ($(uname -mrs))"` (on Linux), -`echo "$(sw_vers -productName) $(sw_vers -productVersion) ($(uname -mrs))"` (on macOS), or -`python -c "import platform; print(platform.platform())"` (should work everywhere). - -###### Build steps -Describe how to build JerryScript. Give all the necessary details of the build -(e.g., environment variables, command(s), profile, command line options, etc.). - -E.g.: -```sh -tools/build.py --clean --debug -``` -Or: -```sh -mkdir build && cmake -H. -Bbuild && make -C build -``` - -Even if the bug was originally observed when JerryScript was integrated into a -larger project, try to reproduce it with as few external code as possible, -preferably by building the `jerry` command line tool. - -###### Build log -Copy the build log if the reported issue is a build problem. Do a verbose build -if necessary. Try and trim the log to relevant parts. - -###### Test case -Give the JavaScript input that should be passed to the engine to trigger the -bug. Try and post a reduced test case that is minimally necessary to reproduce -the issue. As a rule of thumb, use Markdown's fenced code block syntax for the -test case. Attach the file (renamed to .txt) if the test case contains -'problematic' bytes that cannot be copied in the bug report directly. - -###### Execution platform -Unnecessary if the same as the build platform. - -###### Execution steps -List the steps that trigger the bug. - -E.g., if a bug is snapshot-specific: -```sh -build/bin/jerry-snapshot generate -o testcase.js.snapshot testcase.js -build/bin/jerry --exec-snapshot testcase.js.snapshot -``` - -Unnecessary if trivial (i.e., `build/bin/jerry testcase.js`). - -###### Output -Copy relevant output from the standard output and/or error channels. - -###### Backtrace -In case of a crash (assertion failure, etc.), try to copy the backtrace from a -debugger at the point of failure. - -###### Expected behavior -Describe what should happen instead of current behavior. Unnecessary if trivial -(e.g., in case of a crash, the trivial expected behavior is not to crash). diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 28c44ab7be..0000000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,19 +0,0 @@ -**PLEASE REMOVE THIS TEMPLATE BEFORE SUBMITTING** - -Before submitting a PR, please, make sure that: - -- Changes are in a separate branch, not in master. -- The branch contains only one commit on top of master (if not, squash them into - one commit). -- The commit has a descriptive commit message with a concise title (first line). -- The commit message contains `fixes #XXXX` or `closes #XXXX` to auto-close the - issue(s) that the PR fixes (if any). -- Tests for the changes have been added (for bug fixes / features). -- Documentation has been added / updated (if applicable). -- All new and existing tests passed locally (if not, fix them first and amend - the commit). - -IMPORTANT: Please review the CONTRIBUTING.md file for detailed contributing -guidelines. - -**PLEASE REMOVE THIS TEMPLATE BEFORE SUBMITTING** diff --git a/.github/workflows/gh-actions.yml b/.github/workflows/gh-actions.yml deleted file mode 100644 index 8216728149..0000000000 --- a/.github/workflows/gh-actions.yml +++ /dev/null @@ -1,401 +0,0 @@ -name: JerryScript CI - -on: [push, pull_request] - -env: - RUNNER: tools/run-tests.py - -jobs: - Checks: - runs-on: ubuntu-22.04 # needed for checker version stability - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - uses: actions/setup-python@v2 - with: - python-version: '3.10' - - run: sudo apt update - - run: sudo apt install pylint doxygen cppcheck clang-format-15 - - run: $RUNNER --check-signed-off=gh-actions - if: ${{ always() }} - - run: $RUNNER --check-doxygen - if: ${{ always() }} - - run: $RUNNER --check-format - if: ${{ always() }} - - run: $RUNNER --check-license - if: ${{ always() }} - - run: $RUNNER --check-strings - if: ${{ always() }} - - run: $RUNNER --check-pylint - if: ${{ always() }} - - run: $RUNNER --check-cppcheck - if: ${{ always() }} - - Linux_x86-64_Build_Correctness_Debugger_Tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: $RUNNER -q --jerry-tests - - run: $RUNNER -q --jerry-tests --build-debug - - run: $RUNNER -q --jerry-debugger - - run: $RUNNER -q --jerry-debugger --build-debug - - Linux_x86_cpointer-32bit_Build_Correctness_Tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-multilib - - run: $RUNNER -q --jerry-tests --buildoptions=--compile-flag=-m32,--cpointer-32bit=on - - run: $RUNNER -q --jerry-tests --buildoptions=--compile-flag=-m32,--cpointer-32bit=on --build-debug - - Win_x86-64_Conformance_Tests_ESNext: - runs-on: windows-latest - steps: - - uses: actions/checkout@v2 - - run: python $env:RUNNER --test262 update - - Win_x86-64_Conformance_Tests_ESNext_Debug: - runs-on: windows-latest - steps: - - uses: actions/checkout@v2 - - run: python $env:RUNNER --test262 update --build-debug - - Win_x86-64_Tests-MINGW: - runs-on: windows-latest - defaults: - run: - shell: msys2 {0} - steps: - - uses: actions/checkout@v4 - - uses: msys2/setup-msys2@v2 - with: - msystem: MINGW64 - update: true - install: >- - mingw-w64-x86_64-python - mingw-w64-x86_64-cmake - mingw-w64-x86_64-make - mingw-w64-x86_64-toolchain - - run: python $RUNNER -q --jerry-tests - - run: python $RUNNER -q --unittests --build-config='' - # FIXME: enable it with upgrade valgrind - run: python $RUNNER -q --buildoption-test - - Win_x86-64_Tests: - runs-on: windows-latest - steps: - - uses: actions/checkout@v2 - - run: python $env:RUNNER -q --jerry-tests - - run: python $env:RUNNER -q --unittests - - run: python $env:RUNNER -q --buildoption-test - - Win_x86-64_Tests_Debug: - runs-on: windows-latest - steps: - - uses: actions/checkout@v2 - - run: python $env:RUNNER -q --jerry-tests --build-debug - - run: python $env:RUNNER -q --unittests --build-debug - - run: python $env:RUNNER -q --buildoption-test --build-debug - - OSX_x86-64_Build_Correctness_Unit_Tests: - runs-on: macos-13 - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: $RUNNER -q --jerry-tests - - run: $RUNNER -q --unittests - - OSX_x86-64_Build_Correctness_Unit_Tests_Debug: - runs-on: macos-13 - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: $RUNNER -q --jerry-tests --build-debug - - run: $RUNNER -q --unittests --build-debug - - Linux_x86-64_Build_Option_Tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-multilib - - run: $RUNNER --buildoption-test - - Conformance_Tests_ESNext: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: $RUNNER --test262 update - - uses: actions/upload-artifact@v4 - if: success() || failure() - with: - name: Test262-ESNext-results - path: | - build/tests/test262_tests_esnext/local/bin/test262.report - - Conformance_Tests_ESNext_Debug_A: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: $RUNNER --test262 update --build-debug --test262-test-list=built-ins,annexB,harness,intl402 - - uses: actions/upload-artifact@v4 - if: success() || failure() - with: - name: Test262-ESNext-Debug-A-results - path: | - build/tests/test262_tests_esnext-debug/local/bin/test262.report - - Conformance_Tests_ESNext_Debug_B: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: $RUNNER --test262 update --build-debug --test262-test-list=language - - uses: actions/upload-artifact@v4 - if: success() || failure() - with: - name: Test262-ESNext-Debug-B-results - path: | - build/tests/test262_tests_esnext-debug/local/bin/test262.report - - Unit_Tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: $RUNNER -q --unittests - - run: $RUNNER -q --unittests --build-debug - - Clang_Unit_Build_Option_Tests: - runs-on: ubuntu-latest - env: - CC: clang - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-multilib - - run: $RUNNER -q --unittests - # clang has bug in supporting lto - - run: $RUNNER -q --buildoption-test --buildoptions=--lto=off - - ASAN_Tests: - runs-on: ubuntu-latest - env: - ASAN_OPTIONS: detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-multilib - - run: >- - $RUNNER -q --jerry-tests - --buildoptions=--stack-limit=0,--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold - --skip-list=parser-oom.js,parser-oom2.js,stack-limit.js,regression-test-issue-4870.js,regression-test-issue-4901.js,regression-test-issue-4848.js,regression-test-issue-4890.js,regression-test-issue-2190.js,regression-test-issue-2258-2963.js,regression-test-issue-2448.js,regression-test-issue-2905.js,regression-test-issue-3785.js,proxy-evil-recursion.js,regression-test-issue-5101.js - - ASAN_Tests_Debug: - runs-on: ubuntu-latest - env: - ASAN_OPTIONS: detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-multilib - - run: >- - $RUNNER -q --jerry-tests --build-debug - --buildoptions=--stack-limit=0,--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold - --skip-list=parser-oom.js,parser-oom2.js,stack-limit.js,regression-test-issue-4870.js,regression-test-issue-4901.js,regression-test-issue-4848.js,regression-test-issue-4890.js,regression-test-issue-2190.js,regression-test-issue-2258-2963.js,regression-test-issue-2448.js,regression-test-issue-2905.js,regression-test-issue-3785.js,proxy-evil-recursion.js,regression-test-issue-5101.js - - UBSAN_Tests: - runs-on: ubuntu-latest - env: - UBSAN_OPTIONS: print_stacktrace=1 - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-multilib - - run: >- - $RUNNER -q --jerry-tests - --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold - --skip-list=parser-oom.js,parser-oom2.js - - run: >- - $RUNNER -q --jerry-tests --build-debug - --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold - --skip-list=parser-oom.js,parser-oom2.js - - Linux_ARMv7l_Tests: - runs-on: ubuntu-latest - env: - RUNTIME: qemu-arm-static - TIMEOUT: 300 - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-user-static - - run: >- - $RUNNER -q --jerry-tests - --buildoptions=--toolchain=cmake/toolchain_linux_armv7l.cmake,--linker-flag=-static - - Linux_ARMv7l_Tests_Debug: - runs-on: ubuntu-latest - env: - RUNTIME: qemu-arm-static - TIMEOUT: 300 - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-user-static - - run: >- - $RUNNER -q --jerry-tests --build-debug - --buildoptions=--toolchain=cmake/toolchain_linux_armv7l.cmake,--linker-flag=-static - - Linux_AArch64_Tests: - runs-on: ubuntu-latest - env: - RUNTIME: qemu-aarch64-static - TIMEOUT: 300 - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-aarch64-linux-gnu libc6-dev-armhf-cross qemu-user-static - - run: >- - $RUNNER -q --jerry-tests - --buildoptions=--toolchain=cmake/toolchain_linux_aarch64.cmake,--linker-flag=-static - - Linux_AArch64_Tests_Debug: - runs-on: ubuntu-latest - env: - RUNTIME: qemu-aarch64-static - TIMEOUT: 300 - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-aarch64-linux-gnu libc6-dev-armhf-cross qemu-user-static - - run: >- - $RUNNER -q --jerry-tests --build-debug - --buildoptions=--toolchain=cmake/toolchain_linux_aarch64.cmake,--linker-flag=-static - - MbedOS_K64F_Build_Test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-arm-none-eabi ninja-build - - run: make -f ./targets/os/mbedos/Makefile.travis install - - run: make -f ./targets/os/mbedos/Makefile.travis script - - Zephyr_STM32F4_Build_Test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gperf dfu-util device-tree-compiler - - run: make -f ./targets/os/zephyr/Makefile.travis install - - run: make -f ./targets/os/zephyr/Makefile.travis script - - NuttX_STM32F4_Build_Test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.6' - - run: sudo apt update - - run: sudo apt install gcc-arm-none-eabi libnewlib-arm-none-eabi gperf - - run: make -f ./targets/os/nuttx/Makefile.travis install-noapt - - run: make -f ./targets/os/nuttx/Makefile.travis script - - RIOT_STM32F4_Build_Test: - runs-on: ubuntu-latest - env: - CC: clang - steps: - - uses: actions/checkout@v2 - - run: sudo apt -y install clang gcc-arm-none-eabi - - run: make -f ./targets/os/riot/Makefile.travis install-noapt - - run: make -f ./targets/os/riot/Makefile.travis script - - ESP8266_RTOS_SDK_Build_Test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '>=3.8' - - run: make -f ./targets/baremetal-sdk/espressif/esp8266-rtos-sdk/Makefile.travis install-noapt - - run: make -f ./targets/baremetal-sdk/espressif/esp8266-rtos-sdk/Makefile.travis script - - ESP_IDF_Build_Test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v4 - with: - python-version: '==3.8' - - run: make -f ./targets/baremetal-sdk/espressif/esp-idf/Makefile.travis install-noapt - - run: make -f ./targets/baremetal-sdk/espressif/esp-idf/Makefile.travis script - - Notification: - runs-on: ubuntu-latest - if: false && github.event_name == 'push' && github.repository == 'jerryscript-project/jerryscript' - steps: - - uses: rectalogic/notify-irc@v1 - with: - channel: '#jerryscript' - nickname: jerryscript-notification - message: | - @${{ github.actor }}: ${{ github.repository }} (${{ github.ref }}#${{ github.sha }}) - ${{ join(github.event.commits.*.message) }} - ${{ github.event.compare }} diff --git a/.gitignore b/.gitignore index 3bb753c2a3..badbc02f6c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,41 +1,2 @@ -# Produced files -.mbedignore -build/* - -# IDE related files -nbproject -*.sublime-project -*.sublime-workspace -.idea - -# Random Trash -*.swp -*.swo -*~ -core -vgcore.* -*.orig -*.directory -*.patch -.tags* -cscope.* -__pycache__ -*.pyc -.DS_Store - -# ctags and ID database -tags -ID - -# targets -jerry-targetjs.h -.output -targets/esp8266/output.map -targets/esp8266/libs - -# Generated documentation -docs/doxygen - -# Tests -tests/test262/ -.vs +_site +.sass-cache diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..b312800aed --- /dev/null +++ b/.travis.yml @@ -0,0 +1,13 @@ +language: c +os: linux + +install: + - wget https://raw.githubusercontent.com/${TRAVIS_REPO_SLUG}/master/tools/check-signed-off.sh + - chmod u+x check-signed-off.sh +script: ./check-signed-off.sh --gh-actions + +branches: + only: + - master + - gh-pages + - /.*/ diff --git a/docs/00.GETTING-STARTED.md b/00.GETTING-STARTED.md similarity index 91% rename from docs/00.GETTING-STARTED.md rename to 00.GETTING-STARTED.md index 6e3e854df4..a136573bba 100644 --- a/docs/00.GETTING-STARTED.md +++ b/00.GETTING-STARTED.md @@ -1,3 +1,13 @@ +--- +layout: page +title: Getting Started +category: navbar +permalink: /getting-started/ +--- + +* toc +{:toc} + ## Setting up prerequisites Currently, only Ubuntu 18.04+ is officially supported as primary development environment. @@ -5,17 +15,17 @@ Currently, only Ubuntu 18.04+ is officially supported as primary development env There are several dependencies, that should be installed manually. The following list is the absolute minimum for building: - `gcc` or any C99-compliant compiler (native or cross, e.g., arm-none-eabi) -- `cmake` >= `3.10` +- `cmake` >= `2.8.12.2` Several scripts and tools help the building and development process, thus it is recommended to have the following installed as well: - `bash` >= `4.3.11` -- `cppcheck` >= `2.7` -- `clang-format-15` -- `python` >= `3.10` +- `cppcheck` >= `1.61` +- `clang-format-10` >= `10.0.0` +- `python` >= `2.7.6` ```bash -sudo apt-get install gcc gcc-arm-none-eabi cmake cppcheck clang-format-15 python +sudo apt-get install gcc gcc-arm-none-eabi cmake cppcheck clang-format-10 python ``` To make our scripts run correctly, several shell utilities should be available on the system: @@ -57,7 +67,7 @@ python tools/build.py --cmake-param=CMAKE_PARAM python tools/build.py --profile=es.next|minimal ``` -See also the related [README.md](../jerry-core/profiles/README.md). +See also the related [README.md](https://github.com/jerryscript-project/jerryscript/blob/master/jerry-core/profiles/README.md). **Use (compiler-default, external) libc** diff --git a/docs/01.CONFIGURATION.md b/01.CONFIGURATION.md similarity index 99% rename from docs/01.CONFIGURATION.md rename to 01.CONFIGURATION.md index 1a263e73fa..1246eb4cab 100644 --- a/docs/01.CONFIGURATION.md +++ b/01.CONFIGURATION.md @@ -1,3 +1,13 @@ +--- +layout: page +title: Configuration +category: navbar +permalink: /configuration/ +--- + +* toc +{:toc} + # Configuration JerryScript provides a large number of configuration options which can be used to enable or disable specific features, allowing users to fine tune the engine to best suit their needs. diff --git a/docs/02.API-REFERENCE.md b/02.API-REFERENCE.md similarity index 96% rename from docs/02.API-REFERENCE.md rename to 02.API-REFERENCE.md index 0e3558f80f..8f5f450d29 100644 --- a/docs/02.API-REFERENCE.md +++ b/02.API-REFERENCE.md @@ -1,3 +1,13 @@ +--- +layout: page +title: API Reference +category: navbar +permalink: /api-reference/ +--- + +* toc +{:toc} + # JerryScript types ## jerry_init_flag_t @@ -771,7 +781,7 @@ typedef jerry_value_t (*jerry_external_handler_t) (const jerry_call_info_t *call Native free callback of generic value types. *Note*: -- Referred values by this method must have at least 1 reference. (Correct API usage satisfies this condition) + - Referred values by this method must have at least 1 reference. (Correct API usage satisfies this condition) **Prototype** @@ -795,7 +805,7 @@ Native free callback of an object. The callback receives both the memory pointer information passed to [jerry_object_set_native_ptr](#jerry_object_set_native_ptr). *Note*: -- Referred values by this method must have at least 1 reference. (Correct API usage satisfies this condition) + - Referred values by this method must have at least 1 reference. (Correct API usage satisfies this condition) **Prototype** @@ -853,8 +863,8 @@ object is created and the decorator can create or update any properties of the n Error object. *Note*: -- The callback function cannot be called recursively, so the Error objects created - when the callback is running are not updated. + - The callback function cannot be called recursively, so the Error objects created + when the callback is running are not updated. **Prototype** @@ -894,8 +904,8 @@ An enum representing the current status of a module Callback which is called by [jerry_module_link](#jerry_module_link) to get the referenced module. *Note*: -- If realms are enabled, the returned module should be created in the current - realm (see: [jerry_current_realm](#jerry_current_realm)) + - If realms are enabled, the returned module should be created in the current realm + (see: [jerry_current_realm](#jerry_current_realm)) **Prototype** @@ -925,19 +935,19 @@ typedef jerry_value_t (*jerry_module_resolve_cb_t) (const jerry_value_t specifie Callback which is called when an import is resolved dynamically to get the referenced module. *Note*: -- If the function returns with a promise, the import call returns with this promise. The - application should try to resolve the requested module later. If the module is evaluated - successfully, the returned promise should be resolved with the namespace object of the - module. Otherwise, the returned promise should be rejected with an exception. -- If the function returns with a resolved module, a promise is created and resolved with the - namespace object of the module. The import call returns with the resolved promise. -- If the function returns with an exception, a promise is created and rejected with the - returned exception. The import call returns with the rejected promise. -- All other return values are considered invalid. In this case the import call returns - with a rejected promise. The rejected promise has a fixed error message, it does not - specify the reason of the fail. -- If realms are enabled, the returned module should be created in the current - realm (see: [jerry_current_realm](#jerry_current_realm)) + - If the function returns with a promise, the import call returns with this promise. The + application should try to resolve the requested module later. If the module is evaluated + successfully, the returned promise should be resolved with the namespace object of the + module. Otherwise, the returned promise should be rejected with an exception. + - If the function returns with a resolved module, a promise is created and resolved with the + namespace object of the module. The import call returns with the resolved promise. + - If the function returns with an exception, a promise is created and rejected with the + returned exception. The import call returns with the rejected promise. + - All other return values are considered invalid. In this case the import call returns + with a rejected promise. The rejected promise has a fixed error message, it does not + specify the reason of the fail. + - If realms are enabled, the returned module should be created in the current realm + (see: [jerry_current_realm](#jerry_current_realm)) **Prototype** @@ -1653,8 +1663,7 @@ main (void) Finish JavaScript engine execution, freeing memory and JavaScript values. -*Note*: -- JavaScript values, received from engine, will be inaccessible after the cleanup. +*Note*: JavaScript values, received from engine, will be inaccessible after the cleanup. **Prototype** @@ -1674,11 +1683,10 @@ jerry_cleanup (void); Retrieve a pointer to the item stored within the current context by the given manager. -*Note*: -- Since internally the pointer to a manager's context data item is linked to the next - such pointer in a linked list, it is inadvisable to invoke too many different managers, - because doing so will increase the time it takes to retrieve a manager's context data - item, degrading performance. For example, try to keep the number of managers below five. +*Note*: Since internally the pointer to a manager's context data item is linked to the next such pointer in a linked + list, it is inadvisable to invoke too many different managers, because doing so will increase the time it takes + to retrieve a manager's context data item, degrading performance. For example, try to keep the number of + managers below five. **Prototype** @@ -1758,10 +1766,10 @@ someplace_in_the_code (void) Registers an external magic string array. -*Note*: -- The strings in the array must be sorted by size at first, then lexicographically. -- The maximum number of external magic strings is limited to 2147483648 (UINT32_MAX / 2). - If there are more than 2147483648 external magic strings the extra is cropped. +*Notes*: + - The strings in the array must be sorted by size at first, then lexicographically. + - The maximum number of external magic strings is limited to 2147483648 (UINT32_MAX / 2). + If there are more than 2147483648 external magic strings the extra is cropped. **Prototype** @@ -1822,7 +1830,7 @@ main (void) Get heap memory stats. -*Note*: +**Notes**: - The engine must be initialized with the `JERRY_INIT_MEM_STATS` option to allow heap statistic collections. See [jerry_init](#jerry_init) - This API depends on a build option (`JERRY_MEM_STATS`) and can be checked @@ -1917,8 +1925,8 @@ Functions to parse and run JavaScript source code. Parse a script, module, or function and create a compiled code using a character string. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -2030,8 +2038,8 @@ main (void) Parse a script, module, or function and create a compiled code using a string value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -2092,10 +2100,10 @@ main (void) Run a Script or Module created by [jerry_parse](#jerry_parse). -*Note*: -- The code should be previously parsed with `jerry_parse`. -- Returned value must be freed with [jerry_value_free](#jerry_value_free) - when it is no longer needed. +*Notes*: + - The code should be previously parsed with `jerry_parse`. + - Returned value must be freed with [jerry_value_free](#jerry_value_free) + when it is no longer needed. **Prototype** @@ -2155,8 +2163,8 @@ main (void) Perform JavaScript `eval` function call (ECMA-262 v5.1 sec-15.1.2.1). -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -2197,8 +2205,8 @@ Run enqueued Promise tasks until the first thrown exception or until all tasks g *Important Note*: The task queue is not guaranteed to be empty after the function call has returned a value. Therefore, this function is best used in a while loop, handling each exception it returns, until the queue is empty. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -2269,8 +2277,8 @@ main (void) Get the Global object. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -2390,7 +2398,7 @@ jerry_value_is_array (const jerry_value_t value) Returns whether the given `jerry_value_t` is an ArrayBuffer object. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_TYPEDARRAY`) and can be checked in runtime with the `JERRY_FEATURE_TYPEDARRAY` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -2436,7 +2444,7 @@ jerry_value_is_arraybuffer (const jerry_value_t value) Returns whether the given `jerry_value_t` is a SharedArrayBuffer object. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_TYPEDARRAY`) and can be checked in runtime with the `JERRY_FEATURE_TYPEDARRAY` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -2639,7 +2647,7 @@ jerry_value_is_constructor (const jerry_value_t value) Returns whether the given `jerry_value_t` is a DataView object value. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_DATAVIEW`) and can be checked in runtime with the `JERRY_FEATURE_DATAVIEW` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -2977,7 +2985,7 @@ jerry_value_is_promise (const jerry_value_t value) Returns whether the given `jerry_value_t` is a proxy value. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_PROXY`) and can be checked in runtime with the `JERRY_FEATURE_PROXY` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -3120,7 +3128,7 @@ main (void) Returns whether the given `jerry_value_t` is a bigint value. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_BIGINT`) and can be checked in runtime with the `JERRY_FEATURE_BIGINT` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -3181,7 +3189,7 @@ main (void) Checks whether the given `jerry_value_t` is a TypedArray object or not. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_TYPEDARRAY`) and can be checked in runtime with the `JERRY_FEATURE_TYPEDARRAY` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -3238,7 +3246,7 @@ main (void) Checks whether the given `jerry_value_t` is the given `jerry_container_type_t` type container object. -*Note*: +*Notes* - This API function depends on a build option (`JERRY_BUILTIN_CONTAINER`) and can be checked runtime with the `JERRY_FEATURE_MAP, JERRY_FEATURE_SET, JERRY_FEATURE_WEAKMAP, JERRY_FEATURE_WEAKSET` feature enum values. @@ -3567,8 +3575,8 @@ jerry_feature_enabled (const jerry_feature_t feature); Perform binary operation on the given operands (==, ===, <, >, etc.). -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -3864,8 +3872,8 @@ for the first argument, so the exception value won't be available after the call `jerry_exception_value`. The second argument should be false if both the exception and its contained value are needed. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -3976,7 +3984,7 @@ The callback passed to this function is called when an exception is thrown in ECMAScript code. The callback is not called again until the value is caught. See: [jerry_throw_cb_t](#jerry_throw_cb_t). -*Note*: +*Notes*: - This API depends on a build option (`JERRY_VM_THROW`) and can be checked in runtime with the `JERRY_FEATURE_VM_THROW` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -4045,7 +4053,7 @@ main (void) Checks whether the callback set by [jerry_on_throw](#jerry_on_throw) captured the exception. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_VM_THROW`) and can be checked in runtime with the `JERRY_FEATURE_VM_THROW` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -4113,7 +4121,7 @@ main (void) Sets whether the callback set by [jerry_on_throw](#jerry_on_throw) should capture the exception or not. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_VM_THROW`) and can be checked in runtime with the `JERRY_FEATURE_VM_THROW` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -4290,7 +4298,7 @@ jerry_size_t jerry_string_size (const jerry_value_t value, jerry_encoding_t enco Get the length of a string. Returns zero, if the value parameter is not a string. -*Note*: +*Notes:* - The difference from [jerry_string_size](#jerry_string_size) is that it returns the number of bytes used for the string. - This is **not** the number of bytes required to store the string. @@ -4427,11 +4435,12 @@ Copy the characters of a string into a specified cesu-8 buffer. The '\0' character could occur in the character buffer. Returns 0, if the input value is not a string. -*Note*: -- Does not put '\0' to the end of string, the return value identifies - the number of valid bytes in the output buffer. -- If the size of the string is larger than the size of the - target buffer, the string will be cropped. +*Note*: Does not put '\0' to the end of string, the return value identifies +the number of valid bytes in the output buffer. + +*Note*: If the size of the string is larger than the size of the +target buffer, the string will be cropped. + **Prototype** @@ -4503,10 +4512,10 @@ string is no longer used. It is recommended to set this function before the first external string is created. *Note*: -- When the callback is NULL, no function is called when an external string is freed. -- In some cases (e.g. when the string is also a magic string registered by - [jerry_register_magic_strings](#jerry_register_magic_strings)), the callback - is called when the string is created, not when it is released. + - When the callback is NULL, no function is called when an external string is freed. + - In some cases (e.g. when the string is also a magic string registered by + [jerry_register_magic_strings](#jerry_register_magic_strings)), the callback + is called when the string is created, not when it is released. **Prototype** @@ -4566,10 +4575,10 @@ main (void) Returns the user pointer assigned to an external string. *Note*: -- In some cases (e.g. when the string is also a magic string registered by - [jerry_register_magic_strings](#jerry_register_magic_strings)), the - string is a normal string without a user pointer even if it is created - by [jerry_string_external_sz](#jerry_string_external_sz). + - In some cases (e.g. when the string is also a magic string registered by + [jerry_register_magic_strings](#jerry_register_magic_strings)), the + string is a normal string without a user pointer even if it is created + by [jerry_string_external_sz](#jerry_string_external_sz). **Prototype** @@ -4713,8 +4722,8 @@ jerry_value_to_boolean (const jerry_value_t value); Call ToNumber operation on the api value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -4753,9 +4762,8 @@ jerry_value_to_number (const jerry_value_t value); Call ToObject operation on the api value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -4793,9 +4801,8 @@ jerry_value_to_object (const jerry_value_t value); Call ToPrimitive operation on the api value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -4833,9 +4840,8 @@ jerry_value_to_primitive (const jerry_value_t value); Call the ToString ecma builtin operation on the api value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -4874,8 +4880,8 @@ jerry_value_to_string (const jerry_value_t value); Call the BigInt constructor ecma builtin operation on the api value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -5014,7 +5020,7 @@ These APIs all depend on module support. Link modules to their dependencies. The dependencies are resolved by a user callback. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked @@ -5097,7 +5103,7 @@ main (void) Evaluate a module and its dependencies. The module must be in linked state. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked @@ -5191,7 +5197,7 @@ jerry_module_cleanup (jerry_current_realm ()); Returns the current status of a module. The available values are listed in [jerry_module_state_t](#jerry_module_state_t) -*Note*: +*Notes*: - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked in runtime with the `JERRY_FEATURE_MODULE` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -5253,7 +5259,7 @@ main (void) Sets a callback which is called after a module state is changed to linked, evaluated, or error. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked in runtime with the `JERRY_FEATURE_MODULE` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -5330,7 +5336,7 @@ main (void) Sets a callback which is called when an import.meta expression of a module is evaluated the first time. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked in runtime with the `JERRY_FEATURE_MODULE` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -5408,7 +5414,7 @@ Returns the number of import/export requests of a module. The requests can be queried by [jerry_module_request](#jerry_module_request). -*Note*: +*Notes*: - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked in runtime with the `JERRY_FEATURE_MODULE` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -5477,7 +5483,7 @@ the successfully resolved dependencies are module objects, the rest are strings. The number of requests can be queried by [jerry_module_request_count](#jerry_module_request_count). -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked @@ -5546,7 +5552,7 @@ main (void) Returns the namespace object of a module -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked @@ -5614,7 +5620,7 @@ Sets the callback which is called when dynamic imports are resolved. The resolve receives the `user_value` assigned to the currently executed script, which should provide all the information that is necessary for the resolve. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked in runtime with the `JERRY_FEATURE_MODULE` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -5736,7 +5742,7 @@ main (void) Creates a native module with a list of exports. The initial state of the module is linked. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - Native pointers can be used to assign private data to a native module, @@ -5806,7 +5812,7 @@ main (void) Gets the value of an export binding which belongs to a native module. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked @@ -5865,7 +5871,7 @@ main (void) Sets the value of an export binding which belongs to a native module. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_MODULE_SYSTEM`) and can be checked @@ -5934,7 +5940,7 @@ These APIs are always enabled. The function returns the result of a Promise object. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. @@ -5997,7 +6003,7 @@ example (void) **Summary** -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. @@ -6064,7 +6070,7 @@ example (void) Sets a callback for tracking Promise and async operations. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_PROMISE_CALLBACK`) and can be checked in runtime with the `JERRY_FEATURE_PROMISE_CALLBACK` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -6140,7 +6146,7 @@ main (void) This API function is equivalent to FromPropertyDescriptor operation defined in ECMA 262 v11 6.2.5.4. It returns with an ECMAScript Object which represents the property attributes. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. @@ -6193,7 +6199,7 @@ example (void) This API function is equivalent to ToPropertyDescriptor operation defined in ECMA 262 v11 6.2.5.5. It decodes the ECMAScript object and fills the fields of a JerryScript property descriptor. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. @@ -6361,7 +6367,7 @@ These APIs are always enabled. Get the well-known symbol corresponding to the given [well-known symbol id](#jerry_well_known_symbol_t). -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - If the symbol support is not enabled an undefined will be returned. @@ -6419,7 +6425,7 @@ main (void) Returns with the `[[Description]]` internal property of a symbol value. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. @@ -6479,7 +6485,7 @@ main (void) Call the SymbolDescriptiveString ecma builtin operation on the API value. Based on ECMA 262 v6 19.4.3.2.1 this is in the form of `Symbol()`. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. @@ -6544,7 +6550,7 @@ Returns the size of uint64 digits of a BigInt value. This value is the minimum size of the buffer which can hold all digits of a BigInt value when the digits are retrieved by `[jerry_bigint_to_digits](#jerry_bigint_to_digits)`. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_BIGINT`) and can be checked in runtime with the `JERRY_FEATURE_BIGINT` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -6610,7 +6616,7 @@ buffer sizes. If the buffer size is smaller than the size returned by least significant digits are copied into the buffer. If the buffer size is greater, the unused digits are filled with zero. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_BIGINT`) and can be checked in runtime with the `JERRY_FEATURE_BIGINT` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -6676,7 +6682,7 @@ These APIs all depend on build option (`JERRY_BUILTIN_PROXY`). Gets the target object of a Proxy object. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_PROXY`) and can be checked in runtime with the `JERRY_FEATURE_PROXY` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -6730,7 +6736,7 @@ jerry_proxy_target (jerry_value_t proxy_value); Gets the handler object of a Proxy object. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_PROXY`) and can be checked in runtime with the `JERRY_FEATURE_PROXY` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -6785,9 +6791,8 @@ jerry_proxy_handler (jerry_value_t proxy_value); Copies the specified Jerry API value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -6858,9 +6863,8 @@ jerry_value_free (jerry_value_t value); Function for creating [API values](#jerry_value_t). -*Note*: -- Every created API value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Every created API value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. ## jerry_array @@ -6868,9 +6872,8 @@ Function for creating [API values](#jerry_value_t). Create an array object value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7120,10 +7123,9 @@ jerry_shared_arraybuffer_external (uint8_t *buffer_p, Create a jerry_value_t representing a boolean value from the given boolean parameter. -*Note*: -- The boolean values (true/false) are fixed constants. Their values can be copied - any number of times without calling [jerry_value_copy](#jerry_value_copy), and - freeing it with [jerry_value_free](#jerry_value_free) is optional. +*Notes*: +- The boolean values (true/false) are fixed constants. Their values can be copied any number of times without calling + [jerry_value_copy](#jerry_value_copy), and freeing it with [jerry_value_free](#jerry_value_free) is optional. **Prototype** @@ -7163,9 +7165,8 @@ Create new JavaScript Error object with the specified error message. Important! The `error_type` argument *must not be* `JERRY_ERROR_NONE`. Creating an Error object with no error type is not valid. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7208,9 +7209,8 @@ jerry_error (jerry_error_t error_type, jerry_value_t message); Create new JavaScript Error object, using the a zero-terminated string as the error message. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7249,11 +7249,11 @@ jerry_error_sz (jerry_error_t error_type, const char *message_p); Create new JavaScript DataView object. *Note*: -- This API depends on a build option (`JERRY_BUILTIN_DATAVIEW`) and can be checked - in runtime with the `JERRY_FEATURE_DATAVIEW` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- Returned value must be freed with [jerry_value_free](#jerry_value_free) - when it is no longer needed. + - This API depends on a build option (`JERRY_BUILTIN_DATAVIEW`) and can be checked + in runtime with the `JERRY_FEATURE_DATAVIEW` feature enum value, + see: [jerry_feature_enabled](#jerry_feature_enabled). + - Returned value must be freed with [jerry_value_free](#jerry_value_free) + when it is no longer needed. **Prototype** @@ -7312,9 +7312,8 @@ main (void) Create an external function object. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7389,9 +7388,8 @@ main (void) Creates a `jerry_value_t` representing a number value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7430,9 +7428,8 @@ jerry_number (double value); Creates a `jerry_value_t` representing a positive or negative infinity value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7471,9 +7468,8 @@ jerry_infinity (bool sign); Creates a `jerry_value_t` representing a not-a-number value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7511,10 +7507,9 @@ jerry_nan (void); Creates and returns a `jerry_value_t` with type null object. -*Note*: -- The null value is a fixed constant. Its value can be copied any number of times without - calling [jerry_value_copy](#jerry_value_copy), and freeing it - with [jerry_value_free](#jerry_value_free) is optional. +*Notes*: +- The null value is a fixed constant. Its value can be copied any number of times without calling + [jerry_value_copy](#jerry_value_copy), and freeing it with [jerry_value_free](#jerry_value_free) is optional. **Prototype** @@ -7550,9 +7545,8 @@ jerry_null (void); Create new JavaScript object, like with new Object(). -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7590,8 +7584,8 @@ Create an empty promise object which can be resolved or rejected later by calling jerry_promise_resolve or jerry_promise_reject. *Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) - when it is no longer needed. + - Returned value must be freed with [jerry_value_free](#jerry_value_free) + when it is no longer needed. **Prototype** @@ -7632,11 +7626,11 @@ jerry_promise (void) Create a new Proxy object with the given target and handler. *Note*: -- This API depends on a build option (`JERRY_BUILTIN_PROXY`) and can be checked - in runtime with the `JERRY_FEATURE_PROXY` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- Returned value must be freed with [jerry_value_free](#jerry_value_free) - when it is no longer needed. + - This API depends on a build option (`JERRY_BUILTIN_PROXY`) and can be checked + in runtime with the `JERRY_FEATURE_PROXY` feature enum value, + see: [jerry_feature_enabled](#jerry_feature_enabled). + - Returned value must be freed with [jerry_value_free](#jerry_value_free) + when it is no longer needed. **Prototype** @@ -7696,11 +7690,11 @@ Create a new Proxy object with the given target and handler. The behaviour of the Proxy can be specialized with an options argument. *Note*: -- This API depends on a build option (`JERRY_BUILTIN_PROXY`) and can be checked - in runtime with the `JERRY_FEATURE_PROXY` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- Returned value must be freed with [jerry_value_free](#jerry_value_free) - when it is no longer needed. + - This API depends on a build option (`JERRY_BUILTIN_PROXY`) and can be checked + in runtime with the `JERRY_FEATURE_PROXY` feature enum value, + see: [jerry_feature_enabled](#jerry_feature_enabled). + - Returned value must be freed with [jerry_value_free](#jerry_value_free) + when it is no longer needed. **Prototype** @@ -7759,9 +7753,8 @@ main (void) Create string from a zero-terminated ASCII string. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7799,9 +7792,8 @@ jerry_string_sz (const char *str_p); Create a string from a buffer using the specified encoding. The data in the buffer must be valid for the encoding. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -7850,9 +7842,9 @@ should not be modified until the free callback is called. This function can be u the duplication of large strings. *Note*: -- The free callback can be set by [jerry_string_external_on_free](#jerry_string_external_on_free) -- Returned value must be freed with [jerry_value_free](#jerry_value_free) - when it is no longer needed. + - The free callback can be set by [jerry_string_external_on_free](#jerry_string_external_on_free) + - Returned value must be freed with [jerry_value_free](#jerry_value_free) + when it is no longer needed. **Prototype** @@ -7899,9 +7891,9 @@ should not be modified until the free callback is called. This function can be u the duplication of large strings. *Note*: -- The free callback can be set by [jerry_string_external_on_free](#jerry_string_external_on_free) -- Returned value must be freed with [jerry_value_free](#jerry_value_free) - when it is no longer needed. + - The free callback can be set by [jerry_string_external_on_free](#jerry_string_external_on_free) + - Returned value must be freed with [jerry_value_free](#jerry_value_free) + when it is no longer needed. **Prototype** @@ -7953,9 +7945,9 @@ jerry_string_external (const jerry_char_t *str_p, Create symbol from an API value. *Note*: -- The given argument is converted to string. This operation can throw an exception. -- Returned value must be freed with [jerry_value_free](#jerry_value_free) - when it is no longer needed. + - The given argument is converted to string. This operation can throw an exception. + - Returned value must be freed with [jerry_value_free](#jerry_value_free) + when it is no longer needed. **Prototype** @@ -8074,9 +8066,8 @@ Returns a RegExp object created from the argument of a zero-terminated UTF-8 str if the construction of the object fails. Optional flags can be set using [jerry_regexp_flags_t](#jerry_regexp_flags_t). These flags can be combined together with the binary OR operator or used on their own as enum values. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** ```c @@ -8116,9 +8107,8 @@ Returns a RegExp object from the argument pattern, or an exception if the constr flags can be set using [jerry_regexp_flags_t](#jerry_regexp_flags_t). These flags can be combined together with the binary OR operator or used on their own as enum values. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** ```c @@ -8164,7 +8154,7 @@ Create a jerry_value_t representing an TypedArray object. For the new object the type of the TypedArray (see: [jerry_typedarray_type_t](#jerry_typedarray_type_t)) and element count can be specified. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_BUILTIN_TYPEDARRAY`) and can be checked @@ -8222,7 +8212,7 @@ type of TypedArray otherwise an exception is generated. The JavaScript equivalent of this function is: `new %TypedArray%(arraybuffer)` where `%TypedArray%` is one of the allowed TypedArray functions. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_BUILTIN_TYPEDARRAY`) and can be checked @@ -8285,7 +8275,7 @@ type of TypedArray otherwise an exception is generated. The JavaScript equivalent of this function is: `new %TypedArray%(arraybuffer, byteOffset, length)` where `%TypedArray%` is one of the allowed TypedArray functions. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_BUILTIN_TYPEDARRAY`) and can be checked @@ -8342,7 +8332,7 @@ jerry_typedarray_with_buffer_span (jerry_typedarray_type_t type_name, Create a jerry_value_t representing a given type container object. -*Note*: +*Notes*: - This method is expected to work the same way as the JavaScript Map constructor. - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. @@ -8408,10 +8398,8 @@ main (void) Creates a `jerry_value_t` representing an undefined value. -*Note*: -- The undefined value is a fixed constant. Its value can be copied any number of - times without calling [jerry_value_copy](#jerry_value_copy), and freeing it - with [jerry_value_free](#jerry_value_free) is optional. +*Notes*: +- The undefined value is a fixed constant. Its value can be copied any number of times without calling [jerry_value_copy](#jerry_value_copy), and freeing it with [jerry_value_free](#jerry_value_free) is optional. **Prototype** @@ -8448,7 +8436,7 @@ jerry_undefined (void); Creates a `jerry_value_t` representing a new global object. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_BUILTIN_REALMS`) and can be checked @@ -8505,9 +8493,8 @@ main (void) Checks whether the object or its prototype objects have the given property. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -8622,9 +8609,8 @@ main (void) Checks whether the object has the given property. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -8687,10 +8673,10 @@ main (void) Checks whether the object has the given internal property. *Note*: -- Properties which were not created with [jerry_object_set_internal](#jerry_object_set_internal) - are excluded during the operation. -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. + - Properties which were not created with [jerry_object_set_internal](#jerry_object_set_internal) are excluded + during the operation. + - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -8881,9 +8867,8 @@ jerry_object_delete_index (const jerry_value_t obj_val, Delete an internal property from an object. -*Note*: -- Properties which were not created with [jerry_object_set_internal](#jerry_object_set_internal) - are excluded during the operation. +*Note*: Properties which were not created with [jerry_object_set_internal](#jerry_object_set_internal) are excluded + during the operation. **Prototype** @@ -8931,9 +8916,8 @@ jerry_object_delete_internal (const jerry_value_t obj_val, Get value of a property to the specified object with the given name. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -9048,9 +9032,8 @@ main (void) Get value by an index from the specified object. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -9104,10 +9087,10 @@ whether the property is found, and the receiver object can be specified as well. The receiver is passed as the `this` argument for getters, and the receiver argument for Proxy `get` traps. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. -- The `found_p` argument is ignored if its value is NULL. -- The target value of `found_p` argument is set to false when the arguments are invalid, e.g. `obj_val` is not an object. +*Notes*: + - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. + - The `found_p` argument is ignored if its value is NULL. + - The target value of `found_p` argument is set to false when the arguments are invalid, e.g. `obj_val` is not an object. **Prototype** @@ -9175,10 +9158,10 @@ main (void) Get value of an internal property to the specified object with the given name. *Note*: -- Properties which were not created with [jerry_object_set_internal](#jerry_object_set_internal) - are excluded during the operation. -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. + - Properties which were not created with [jerry_object_set_internal](#jerry_object_set_internal) are excluded + during the operation. + - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it + is no longer needed. **Prototype** @@ -9239,9 +9222,8 @@ main (void) Set a property to the specified object with the given name. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -9355,9 +9337,8 @@ jerry_value_t jerry_object_set_sz (jerry_value_t object, const char *key_p, cons Set indexed value in the specified object -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -9414,9 +9395,9 @@ jerry_object_set_index (const jerry_value_t obj_val, Set an internal property to the specified object with the given name. *Note*: -- The property cannot be accessed from the JavaScript context, only from the public API. -- It is different from [jerry_object_set_native_ptr](#jerry_object_set_native_ptr) in that any jerry API value - can be hidden from the JavaScript context, not only native pointers. + - The property cannot be accessed from the JavaScript context, only from the public API. + - It is different from [jerry_object_set_native_ptr](#jerry_object_set_native_ptr) in that any jerry API value + can be hidden from the JavaScript context, not only native pointers. **Prototype** @@ -9517,9 +9498,8 @@ For a more complete example see [jerry_object_define_own_prop](#jerry_object_def Define a property to the specified object with the given name. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -9792,9 +9772,8 @@ jerry_property_descriptor_free (const jerry_property_descriptor_t *prop_desc_p); Call function specified by a function value. The argument values must not be exceptions. Value of `this` parameter should be set to `undefined` for non-method calls. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -9853,9 +9832,8 @@ jerry_call (const jerry_value_t func_obj_val, Construct object, invoking specified function object as constructor. Error flag must not be set for any arguments of this function. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -9906,9 +9884,8 @@ jerry_construct (const jerry_value_t func_obj_val, Get keys of the specified object value. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -9951,9 +9928,8 @@ jerry_object_keys (const jerry_value_t obj_val); Get the prototype of the specified object. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -9996,9 +9972,8 @@ jerry_object_proto (const jerry_value_t obj_val); Set the prototype of the specified object. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -10046,8 +10021,7 @@ Get native pointer by the given type information. The pointer and the type information are previously associated with the object by [jerry_object_set_native_ptr](#jerry_object_set_native_ptr). -*Note*: -- `native_info_p` can be NULL +*Note*: `native_info_p` can be NULL **Prototype** @@ -10293,15 +10267,16 @@ best-practice example. Set native pointer and an optional type information for the specified object. You can get them by calling [jerry_object_get_native_ptr](#jerry_object_get_native_ptr) later. -*Note*: -- If a native pointer was already set for the object with the same type information, its value is updated. -- If a non-NULL free callback is specified in the native type information, - it will be called by the garbage collector when the object is freed. -- If the object is only referenced via the "global" object (or one of it's "child"), - the free callback will be invoked during the execution of `jerry_cleanup`. -- The free callback can invoke API functions. -- If possible do not store API values in native pointers, rather check - [jerry_object_set_internal](#jerry_object_set_internal). +*Notes*: + - If a native pointer was already set for the object with the same type information, its value is updated. + - If a non-NULL free callback is specified in the native type information, + it will be called by the garbage collector when the object is freed. + - If the object is only referenced via the "global" object (or one of it's "child"), + the free callback will be invoked during the execution of `jerry_cleanup`. + - The free callback can invoke API functions. + +*Note*: If possible do not store API values in native pointers, rather check + [jerry_object_set_internal](#jerry_object_set_internal). **Prototype** @@ -10339,12 +10314,12 @@ best-practice example. Delete the native pointer of the specified object associated with the given native type info. -*Note*: -- If the specified object has no matching native pointer for the given native type info the operation has no effect. -- The method does not invoke the free callback specified in the type info. - If the native pointer should be freed then one must get the native pointer first and invoke the free callback manually - before calling this method. -- This operation cannot throw an exception. +*Notes*: + - If the specified object has no matching native pointer for the given native type info the operation has no effect. + - The method does not invoke the free callback specified in the type info. + If the native pointer should be freed then one must get the native pointer first and invoke the free callback manually + before calling this method. + - This operation cannot throw an exception. **Prototype** @@ -10384,8 +10359,8 @@ before the buffer is attached to an object by [jerry_object_set_native_ptr](#jerry_object_set_native_ptr). *Note*: -- The description of [jerry_object_native_info_t](#jerry_object_native_info_t) - provides detailed information about these references. + - The description of [jerry_object_native_info_t](#jerry_object_native_info_t) + provides detailed information about these references. **Prototype** @@ -10475,8 +10450,8 @@ function also initializes the values to undefined, so calling is optional before the buffer is attached again. *Note*: -- The description of [jerry_object_native_info_t](#jerry_object_native_info_t) - provides detailed information about these references. + - The description of [jerry_object_native_info_t](#jerry_object_native_info_t) + provides detailed information about these references. **Prototype** @@ -10512,8 +10487,8 @@ Updates a value reference inside the area specified by the `number_of_references part of a buffer which is currently assigned to an object. *Note*: -- The description of [jerry_object_native_info_t](#jerry_object_native_info_t) - provides detailed information about these references. + - The description of [jerry_object_native_info_t](#jerry_object_native_info_t) + provides detailed information about these references. **Prototype** @@ -10694,8 +10669,7 @@ Iterate over all objects available in the engine. The "iterator" `foreach_p` method should return `true` value to continue the search. If the method returns `false` the search for the object is finished. -*Note*: -- Values obtained in `foreach_p` must be retained using [jerry_value_copy](#jerry_value_copy). +*Note*: Values obtained in `foreach_p` must be retained using [jerry_value_copy](#jerry_value_copy). **Prototype** @@ -10835,8 +10809,7 @@ Iterate over all objects in the engine matching a certain native data type. The "iterator" `foreach_p` method should return `true` value to continue the search. If the method returns `false` the search for the object is finished. -*Note*: -- Values obtained in `foreach_p` must be retained using [jerry_value_copy](#jerry_value_copy). +*Note*: Values obtained in `foreach_p` must be retained using [jerry_value_copy](#jerry_value_copy). **Prototype** @@ -10997,9 +10970,8 @@ main (void) Check if a given character buffer is a valid in the specified encoding string. -*Note*: -- Calling this method is safe in any time. It can be called - even before engine initialization. +**Notes**: Calling this method is safe in any time. It can be called +even before engine initialization. **Prototype** @@ -11058,10 +11030,9 @@ main (void) Allocate memory on the engine's heap. -*Note*: -- This function may take away memory from the executed JavaScript code. - If any other dynamic memory allocation API is available (e.g., libc malloc), it - should be used instead. +*Note*: This function may take away memory from the executed JavaScript code. +If any other dynamic memory allocation API is available (e.g., libc malloc), it +should be used instead. **Prototype** @@ -11109,7 +11080,7 @@ void jerry_heap_free (void *mem_p, size_t size); Generate snapshot from the specified source code. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_SNAPSHOT_SAVE`) and can be checked in runtime with @@ -11196,7 +11167,7 @@ main (void) Execute/load snapshot from the specified buffer. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. - This API depends on a build option (`JERRY_SNAPSHOT_EXEC`) and can be checked in runtime with @@ -11545,9 +11516,9 @@ The array length is zero if the backtrace is not available. This function is typically called from native callbacks. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +is no longer needed. - This feature depends on build option (`JERRY_LINE_INFO`) and can be checked in runtime with the `JERRY_FEATURE_LINE_INFO` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -11836,7 +11807,7 @@ This function can only be called from the callback function of [jerry_backtrace_capture](#jerry_backtrace_capture), and the value becomes invalid after the callback returns. -*Note*: +*Notes*: - Location information can only be retrieved if JERRY_FEATURE_LINE_INFO feature is enabled. Otherwise the function always returns with NULL. - The returned data must not be modified, and does not need to be freed. @@ -11901,7 +11872,7 @@ function can only be called from the callback function of [jerry_backtrace_capture](#jerry_backtrace_capture), and the value becomes invalid after the callback returns. -*Note*: +*Notes*: - The returned data must not be modified, and does not need to be freed. Any cleanup is done automatically after the callback is returned. @@ -11958,7 +11929,7 @@ function can only be called from the callback function of [jerry_backtrace_capture](#jerry_backtrace_capture), and the value becomes invalid after the callback returns. -*Note*: +*Notes*: - The returned data must not be modified, and does not need to be freed. Any cleanup is done automatically after the callback is returned. @@ -12140,7 +12111,7 @@ or an exception is caught. Setting the `interval` to a greater than `1` value reduces this overhead further. If its value is N only every Nth event (backward jump, etc.) trigger the next check. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_VM_HALT`) and can be checked in runtime with the `JERRY_FEATURE_VM_EXEC_STOP` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -12214,9 +12185,9 @@ Get the source name (usually a file name) of the currently executed script or th This function is typically called from native callbacks. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +is no longer needed. - This feature depends on build option (`JERRY_LINE_INFO`) and can be checked in runtime with the `JERRY_FEATURE_LINE_INFO` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -12317,9 +12288,9 @@ Returns the user value assigned to a script / module / function. This value is set by the parser when the JERRY_PARSE_HAS_USER_VALUE flag is set in the `options` member of the [jerry_parse_options_t](#jerry_parse_options_t) structure. -*Note*: +*Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +is no longer needed. **Prototype** @@ -12437,9 +12408,9 @@ main (void) Returns a newly created source info structure corresponding to the passed script/module/function. The function is lower level than `toString()` operation, but provides more contextual information. -*Note*: +*Notes*: - Returned value must be freed with [jerry_source_info_free](#jerry_source_info_free) when it - is no longer needed. +is no longer needed. - This API depends on a build option (`JERRY_FUNCTION_TO_STRING`) and can be checked in runtime with the `JERRY_FEATURE_FUNCTION_TO_STRING` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -12499,7 +12470,7 @@ main (void) Frees the the source info structure returned by [jerry_source_info](#jerry_source_info). -*Note*: +*Notes*: - This API depends on a build option (`JERRY_FUNCTION_TO_STRING`) and can be checked in runtime with the `JERRY_FEATURE_FUNCTION_TO_STRING` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -12544,7 +12515,7 @@ This function is useful to parse a script, create a native function, load a snap or create an exception in another realm. Each ECMAScript code runs in the realm which was active when the code was parsed or loaded regardless of the current realm. -*Note*: +*Notes*: - This feature depends on build option (`JERRY_BUILTIN_REALMS`) and can be checked in runtime with the `JERRY_FEATURE_REALM` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -12589,7 +12560,7 @@ Gets the 'this' binding of a realm. The 'this' binding is always an object. By default the 'this' binding is the same as the realm object and can be changed by [jerry_realm_set_this](#jerry_realm_set_this). -*Note*: +*Notes*: - This feature depends on build option (`JERRY_BUILTIN_REALMS`) and can be checked in runtime with the `JERRY_FEATURE_REALM` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -12637,7 +12608,7 @@ jerry_realm_this (jerry_value_t realm_value) Sets the 'this' binding of a realm. This function must be called before executing any script on the realm. Otherwise the operation is undefined. -*Note*: +*Notes*: - This feature depends on build option (`JERRY_BUILTIN_REALMS`) and can be checked in runtime with the `JERRY_FEATURE_REALM` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -12965,10 +12936,6 @@ Detach the underlying data block from ArrayBuffer and set its bytelength to 0. This operation requires the ArrayBuffer to be an external buffer created by `jerry_arraybuffer_external`. -*Note*: -- If the ArrayBuffer has been created with `jerry_arraybuffer_external` the optional free callback is - called on a successful detach operation - **Prototype** ```c @@ -12976,6 +12943,8 @@ jerry_value_t jerry_arraybuffer_detach (const jerry_value_t value); ``` +*Note*: If the ArrayBuffer has been created with `jerry_arraybuffer_external` the optional free callback is called on a successful detach operation + - `value` - ArrayBuffer to be detached - return - null value if success @@ -13012,7 +12981,7 @@ jerry_arraybuffer_detach (const jerry_value_t value); Checks whether a buffer is currently allocated for an array buffer or typed array. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_TYPEDARRAY`) and can be checked in runtime with the `JERRY_FEATURE_TYPEDARRAY` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -13076,7 +13045,7 @@ function are allocated in a single memory block. The allocator callbacks set by [jerry_arraybuffer_set_allocation_callbacks](#jerry_arraybuffer_set_allocation_callbacks) are not called for these array buffers. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_TYPEDARRAY`) and can be checked in runtime with the `JERRY_FEATURE_TYPEDARRAY` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -13147,7 +13116,7 @@ main (void) Set callbacks for allocating and freeing backing stores for array buffer objects. -*Note*: +*Notes*: - This API depends on a build option (`JERRY_BUILTIN_TYPEDARRAY`) and can be checked in runtime with the `JERRY_FEATURE_TYPEDARRAY` feature enum value, see: [jerry_feature_enabled](#jerry_feature_enabled). @@ -13399,9 +13368,8 @@ of the TypedArray object. For the returned ArrayBuffer the [jerry_value_free](#jerry_value_free) must be called. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -13455,9 +13423,8 @@ jerry_typedarray_buffer (jerry_value_t value, Parses a CESU-8 or UTF-8 encoded string as a JSON string, creating a JavaScript value. The behaviour is equivalent with the "JSON.parse(string)" JS call. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -13509,9 +13476,8 @@ main (void) Create a JSON string value from a JavaScript value. The behaviour is equivalent with the "JSON.stringify(input_value)" JS call. -*Note*: -- Returned value must be freed with [jerry_value_free](#jerry_value_free) when it - is no longer needed. +*Note*: Returned value must be freed with [jerry_value_free](#jerry_value_free) when it +is no longer needed. **Prototype** @@ -13572,7 +13538,7 @@ main (void) Return a new array containing elements from a Container, or a Container Iterator. Sets the is_key_value_p to true. if the container object contains key-value structure and false if not. -*Note*: +*Notes* - The return value will be an empty array if the Map/Set or Iterator object was empty or finished. - This API function depends on a build option (`JERRY_BUILTIN_CONTAINER`) and can be checked runtime with the `JERRY_FEATURE_MAP, JERRY_FEATURE_SET, JERRY_FEATURE_WEAKMAP, JERRY_FEATURE_WEAKSET` diff --git a/docs/03.API-EXAMPLE.md b/03.API-EXAMPLE.md similarity index 99% rename from docs/03.API-EXAMPLE.md rename to 03.API-EXAMPLE.md index e8616cc44e..d8cf46edc0 100644 --- a/docs/03.API-EXAMPLE.md +++ b/03.API-EXAMPLE.md @@ -1,3 +1,13 @@ +--- +layout: page +title: API Examples +category: navbar +permalink: /api-example/ +--- + +* toc +{:toc} + JerryScript Engine can be embedded into any application, providing the way to run JavaScript in a large range of environments - from desktops to low-memory microcontrollers. This guide is intended to introduce you to JerryScript embedding API and to create a minimal JavaScript shell. diff --git a/docs/04.INTERNALS.md b/04.INTERNALS.md similarity index 93% rename from docs/04.INTERNALS.md rename to 04.INTERNALS.md index 4fa1753a1d..27a9cc6b2e 100644 --- a/docs/04.INTERNALS.md +++ b/04.INTERNALS.md @@ -1,5 +1,15 @@ +--- +layout: page +title: Internals +category: documents +permalink: /internals/ +--- + +* toc +{:toc} + # High-Level Design -![High-Level Design](img/engines_high_level_design.png) +![High-Level Design]({{ site.github.url }}/img/engines_high_level_design.png){: class="thumbnail center-block img-responsive" } The diagram above shows the interactions between the major components of JerryScript: Parser and Virtual Machine (VM). Parser performs translation of input ECMAScript application into the byte-code with the specified format (refer to [Bytecode](#byte-code) and [Parser](#parser) page for details). Prepared bytecode is executed by the Virtual Machine that performs interpretation (refer to [Virtual Machine](#virtual-machine) and [ECMA](#ecma) pages for details). @@ -27,7 +37,7 @@ Function `parser_parse_source` carries out the parsing and compiling of the inpu The interactions between the major components shown on the following figure. -![Parser dependency](img/parser_dependency.png) +![Parser dependency]({{ site.github.url }}/img/parser_dependency.png){: class="thumbnail center-block img-responsive" } # Byte-code @@ -39,7 +49,7 @@ CBC is a CISC like instruction set which assigns shorter instructions for freque The memory layout of the compiled bytecode is the following. -![CBC layout](img/CBC_layout.png) +![CBC layout]({{ site.github.url }}/img/CBC_layout.png){: class="thumbnail center-block img-responsive" } The header is a `cbc_compiled_code` structure with several fields. These fields contain the key properties of the compiled code. @@ -51,7 +61,7 @@ CBC instruction list is a sequence of bytecode instructions which represents the The memory layout of a byte-code is the following: -![byte-code layout](img/opcode_layout.png) +![byte-code layout]({{ site.github.url }}/img/opcode_layout.png){: class="thumbnail center-block img-responsive" } Each byte-code starts with an opcode. The opcode is one byte long for frequent and two byte long for rare instructions. The first byte of the rare instructions is always zero (`CBC_EXT_OPCODE`), and the second byte represents the extended opcode. The name of common and rare instructions start with `CBC_` and `CBC_EXT_` prefix respectively. @@ -135,26 +145,24 @@ Byte-codes can be placed into four main categories. Byte-codes of this category serve for placing objects onto the stack. As there are many instructions representing multiple atomic tasks in CBC, there are also many instructions for pushing objects onto the stack according to the number and the type of the arguments. The following table list a few of these opcodes with a brief description. - +
| byte-code | description | -| --------------------- | ----------------------------------------------------- | | CBC_PUSH_LITERAL | Pushes the value of the given literal argument. | | CBC_PUSH_TWO_LITERALS | Pushes the values of the given two literal arguments. | | CBC_PUSH_UNDEFINED | Pushes an undefined value. | | CBC_PUSH_TRUE | Pushes a logical true. | | CBC_PUSH_PROP_LITERAL | Pushes a property whose base object is popped from the stack, and the property name is passed as a literal argument. | - +
### Call Byte-codes The byte-codes of this category perform calls in different ways. - +
| byte-code | description | -| --------------------- | ------------------------------------------------------------------------------------ | | CBC_CALL0 | Calls a function without arguments. The return value won't be pushed onto the stack. | | CBC_CALL1 | Calls a function with one argument. The return value won't be pushed onto the stack. | | CBC_CALL | Calls a function with n arguments. n is passed as a byte argument. The return value won't be pushed onto the stack. | @@ -162,16 +170,15 @@ The byte-codes of this category perform calls in different ways. | CBC_CALL1_PUSH_RESULT | Calls a function with one argument. The return value will be pushed onto the stack. | | CBC_CALL2_PROP | Calls a property function with two arguments. The base object, the property name, and the two arguments are on the stack. | - +
### Arithmetic, Logical, Bitwise and Assignment Byte-codes The opcodes of this category perform arithmetic, logical, bitwise and assignment operations. - +
| byte-code | description | -| ----------------------- | --------------------------------------------------------------------------------------------------- | | CBC_LOGICAL_NOT | Negates the logical value that popped from the stack. The result is pushed onto the stack. | | CBC_LOGICAL_NOT_LITERAL | Negates the logical value that given in literal argument. The result is pushed onto the stack. | | CBC_ADD | Adds two values that are popped from the stack. The result is pushed onto the stack. | @@ -180,16 +187,15 @@ The opcodes of this category perform arithmetic, logical, bitwise and assignment | CBC_ASSIGN | Assigns a value to a property. It has three arguments: base object, property name, value to assign. | | CBC_ASSIGN_PUSH_RESULT | Assigns a value to a property. It has three arguments: base object, property name, value to assign. The result will be pushed onto the stack. | - +
### Branch Byte-codes Branch byte-codes are used to perform conditional and unconditional jumps in the byte-code. The arguments of these instructions are 1-3 byte long relative offsets. The number of bytes is part of the opcode, so each byte-code with a branch argument has three forms. The direction (forward, backward) is also defined by the opcode since the offset is an unsigned value. Thus, certain branch instructions has six forms. Some examples can be found in the following table. - +
| byte-code | description | -| -------------------------- | ----------------------------------------------------------- | | CBC_JUMP_FORWARD | Jumps forward by the 1 byte long relative offset argument. | | CBC_JUMP_FORWARD_2 | Jumps forward by the 2 byte long relative offset argument. | | CBC_JUMP_FORWARD_3 | Jumps forward by the 3 byte long relative offset argument. | @@ -198,7 +204,7 @@ Branch byte-codes are used to perform conditional and unconditional jumps in the | CBC_JUMP_BACKWARD_3 | Jumps backward by the 3 byte long relative offset argument. | | CBC_BRANCH_IF_TRUE_FORWARD | Jumps forward if the value on the top of the stack is true by the 1 byte long relative offset argument. | - +
## Snapshot @@ -228,7 +234,7 @@ The major structure for data representation is `ECMA_value`. The lower three bit * symbol * error -![ECMA value representation](img/ecma_value.png) +![ECMA value representation]({{ site.github.url }}/img/ecma_value.png){: class="thumbnail center-block img-responsive" } In case of number, string and object the value contains an encoded pointer, and simple value is a pre-defined constant which can be: @@ -243,7 +249,7 @@ simple value is a pre-defined constant which can be: Compressed pointers were introduced to save heap space. -![Compressed Pointer](img/ecma_compressed.png) +![Compressed Pointer]({{ site.github.url }}/img/ecma_compressed.png){: class="thumbnail center-block img-responsive" } These pointers are 8 byte aligned 16 bit long pointers which can address 512 Kb of memory which is also the maximum size of the JerryScript heap. To support even more @@ -257,7 +263,7 @@ There are two possible representation of numbers according to standard IEEE 754: The default is 8-byte (double), but the engine supports the 4-byte (single precision) representation by setting JERRY_NUMBER_TYPE_FLOAT64 to 0 as well. -![Number](img/number.png) +![Number]({{ site.github.url }}/img/number.png){: class="thumbnail center-block img-responsive" } Several references to single allocated number are not supported. Each reference holds its own copy of a number. @@ -271,7 +277,7 @@ An object can be a conventional data object or a lexical environment object. Unl [Lexical environments](http://www.ecma-international.org/ecma-262/5.1/#sec-10.2) are implemented as objects in JerryScript, since lexical environments contains key-value pairs (called bindings) like objects. This simplifies the implementation and reduces code size. -![Object/Lexical environment structures](img/ecma_object.png) +![Object/Lexical environment structures]({{ site.github.url }}/img/ecma_object.png){: class="thumbnail center-block img-responsive" } The objects are represented as following structure: @@ -281,7 +287,7 @@ The objects are represented as following structure: ### Properties of Objects -![Object properties](img/ecma_object_property.png) +![Object properties]({{ site.github.url }}/img/ecma_object_property.png){: class="thumbnail center-block img-responsive" } Objects have a linked list that contains their properties. This list actually contains property pairs, in order to save memory described in the followings: A property has a one byte long descriptor, a two byte long name and four byte long value. Hence 14 bytes consumed by a property pair. Another two bytes is @@ -313,7 +319,7 @@ Internal properties are special properties that carry meta-information that cann LCache is a hashmap for finding a property specified by an object and by a property name. The object-name-property layout of the LCache presents multiple times in a row as it is shown in the figure below. -![LCache](img/ecma_lcache.png) +![LCache]({{ site.github.url }}/img/ecma_lcache.png){: class="thumbnail center-block img-responsive" } When a property access occurs, a hash value is extracted from the demanded property name and than this hash is used to index the LCache. After that, in the indexed row the specified object and property name will be searched. diff --git a/docs/05.PORT-API.md b/05.PORT-API.md similarity index 98% rename from docs/05.PORT-API.md rename to 05.PORT-API.md index e84b0b4816..ee557016d0 100644 --- a/docs/05.PORT-API.md +++ b/05.PORT-API.md @@ -1,3 +1,13 @@ +--- +layout: page +title: Port API +category: documents +permalink: /port-api/ +--- + +* toc +{:toc} + # Reference ## Process management @@ -119,8 +129,6 @@ void jerry_port_context_free (void); * * The implementation can decide whether error and debug messages are logged to * the console, or saved to a database or to a file. - * - * @param message_p: the message to log. */ void jerry_port_log (const char *message_p); ``` diff --git a/docs/06.REFERENCE-COUNTING.md b/06.REFERENCE-COUNTING.md similarity index 98% rename from docs/06.REFERENCE-COUNTING.md rename to 06.REFERENCE-COUNTING.md index cb207ea76f..9baf1db596 100644 --- a/docs/06.REFERENCE-COUNTING.md +++ b/06.REFERENCE-COUNTING.md @@ -1,3 +1,13 @@ +--- +layout: page +title: Reference Counting +category: documents +permalink: /reference-counting/ +--- + +* toc +{:toc} + ## Reference counting in JerryScript In JerryScript all `jerry_value_t` values are independent diff --git a/docs/07.DEBUGGER.md b/07.DEBUGGER.md similarity index 99% rename from docs/07.DEBUGGER.md rename to 07.DEBUGGER.md index 1885f093ac..b5b13ab277 100644 --- a/docs/07.DEBUGGER.md +++ b/07.DEBUGGER.md @@ -1,3 +1,13 @@ +--- +layout: page +title: Debugger +category: documents +permalink: /debugger/ +--- + +* toc +{:toc} + ## JerryScript debugger interface JerryScript provides a remote debugger which allows debugging diff --git a/docs/08.CODING-STANDARDS.md b/08.CODING-STANDARDS.md similarity index 99% rename from docs/08.CODING-STANDARDS.md rename to 08.CODING-STANDARDS.md index 1cc495d9ca..7b2dc01cf3 100644 --- a/docs/08.CODING-STANDARDS.md +++ b/08.CODING-STANDARDS.md @@ -1,3 +1,13 @@ +--- +layout: page +title: Coding Standards +category: documents +permalink: /coding-standards/ +--- + +* toc +{:toc} + # JerryScript Coding Standards This text is a brief overview of JerryScript Coding Standards. diff --git a/docs/09.EXT-REFERENCE-ARG.md b/09.EXT-REFERENCE-ARG.md similarity index 99% rename from docs/09.EXT-REFERENCE-ARG.md rename to 09.EXT-REFERENCE-ARG.md index 191bb627f3..5009dc4d08 100644 --- a/docs/09.EXT-REFERENCE-ARG.md +++ b/09.EXT-REFERENCE-ARG.md @@ -1,3 +1,13 @@ +--- +layout: page +title: 'Extension API: Argument Validation' +category: documents +permalink: /ext-reference-arg/ +--- + +* toc +{:toc} + # jerryx_arg types ## jerryx_arg_t diff --git a/docs/10.EXT-REFERENCE-HANDLER.md b/10.EXT-REFERENCE-HANDLER.md similarity index 98% rename from docs/10.EXT-REFERENCE-HANDLER.md rename to 10.EXT-REFERENCE-HANDLER.md index 5767ee27d0..e9e770bb51 100644 --- a/docs/10.EXT-REFERENCE-HANDLER.md +++ b/10.EXT-REFERENCE-HANDLER.md @@ -1,3 +1,13 @@ +--- +layout: page +title: 'Extension API: External Function Handlers' +category: documents +permalink: /ext-reference-handler/ +--- + +* toc +{:toc} + # Common methods to handle properties The `jerryscript-ext/properties.h` header defines a set of convenience methods diff --git a/docs/11.EXT-REFERENCE-AUTORELEASE.md b/11.EXT-REFERENCE-AUTORELEASE.md similarity index 77% rename from docs/11.EXT-REFERENCE-AUTORELEASE.md rename to 11.EXT-REFERENCE-AUTORELEASE.md index 7d46247e48..c2cffa723c 100644 --- a/docs/11.EXT-REFERENCE-AUTORELEASE.md +++ b/11.EXT-REFERENCE-AUTORELEASE.md @@ -1,3 +1,13 @@ +--- +layout: page +title: 'Extension API: Autorelease Values' +category: documents +permalink: /ext-reference-autorelease/ +--- + +* toc +{:toc} + # Autorelease values ## JERRYX_AR_VALUE_T @@ -45,6 +55,6 @@ foo (bool enable) **See also** -- [jerry_value_t](../docs/02.API-REFERENCE.md#jerry_value_t) -- [jerry_value_copy](../docs/02.API-REFERENCE.md#jerry_value_copy) -- [jerry_value_free](../docs/02.API-REFERENCE.md#jerry_value_free) +- [jerry_value_t](../api-reference#jerry_value_t) +- [jerry_value_copy](../api-reference#jerry_value_copy) +- [jerry_value_free](../api-reference#jerry_value_free) diff --git a/docs/12.EXT-REFERENCE-MODULE.md b/12.EXT-REFERENCE-MODULE.md similarity index 98% rename from docs/12.EXT-REFERENCE-MODULE.md rename to 12.EXT-REFERENCE-MODULE.md index 44455d84b6..fa5dc57f9a 100644 --- a/docs/12.EXT-REFERENCE-MODULE.md +++ b/12.EXT-REFERENCE-MODULE.md @@ -1,3 +1,13 @@ +--- +layout: page +title: 'Extension API: Module Support' +category: documents +permalink: /ext-reference-module/ +--- + +* toc +{:toc} + # Module API This is a JerryScript extension that provides a means of loading modules. Fundamentally, a module is a name (stored as diff --git a/docs/13.DEBUGGER-TRANSPORT.md b/13.DEBUGGER-TRANSPORT.md similarity index 98% rename from docs/13.DEBUGGER-TRANSPORT.md rename to 13.DEBUGGER-TRANSPORT.md index 78d61459f0..5523d14b76 100644 --- a/docs/13.DEBUGGER-TRANSPORT.md +++ b/13.DEBUGGER-TRANSPORT.md @@ -1,3 +1,13 @@ +--- +layout: page +title: 'Debugger Transport' +category: documents +permalink: /debugger-transport/ +--- + +* toc +{:toc} + # JerryScript debugger transport interface The transport interface support allows dynamic selection of transportation diff --git a/docs/14.EXT-REFERENCE-HANDLE-SCOPE.md b/14.EXT-REFERENCE-HANDLE-SCOPE.md similarity index 92% rename from docs/14.EXT-REFERENCE-HANDLE-SCOPE.md rename to 14.EXT-REFERENCE-HANDLE-SCOPE.md index 5349a15a5a..0877e05017 100644 --- a/docs/14.EXT-REFERENCE-HANDLE-SCOPE.md +++ b/14.EXT-REFERENCE-HANDLE-SCOPE.md @@ -1,3 +1,13 @@ +--- +layout: page +title: 'Extension API: Handle Scope' +category: documents +permalink: /ext-reference-handle-scope/ +--- + +* toc +{:toc} + # Handle Scope ## jerryx_handle_scope @@ -101,9 +111,9 @@ main (void) **See also** -- [jerry_value_t](../docs/02.API-REFERENCE.md#jerry_value_t) -- [jerry_value_copy](../docs/02.API-REFERENCE.md#jerry_value_copy) -- [jerry_value_free](../docs/02.API-REFERENCE.md#jerry_value_free) +- [jerry_value_t](../api-reference#jerry_value_t) +- [jerry_value_copy](../api-reference#jerry_value_copy) +- [jerry_value_free](../api-reference#jerry_value_free) ## Pre-allocated list of handle scopes and handles diff --git a/docs/15.MODULE-SYSTEM.md b/15.MODULE-SYSTEM.md similarity index 97% rename from docs/15.MODULE-SYSTEM.md rename to 15.MODULE-SYSTEM.md index 978ee05144..68c3a32700 100644 --- a/docs/15.MODULE-SYSTEM.md +++ b/15.MODULE-SYSTEM.md @@ -1,3 +1,13 @@ +--- +layout: page +title: 'Module System (EcmaScript2015)' +category: documents +permalink: /module-system/ +--- + +* toc +{:toc} + # ES6 module support for JerryScript The module system allows users to write import and export statements in scripts, which can be used to separate the logic of the application into custom modules. diff --git a/docs/16.MIGRATION-GUIDE.md b/16.MIGRATION-GUIDE.md similarity index 98% rename from docs/16.MIGRATION-GUIDE.md rename to 16.MIGRATION-GUIDE.md index 270add97f6..b2790bf8a5 100644 --- a/docs/16.MIGRATION-GUIDE.md +++ b/16.MIGRATION-GUIDE.md @@ -1,3 +1,13 @@ +--- +layout: page +title: Migration Guide +category: documents +permalink: /migration-guide/ +--- + +* toc +{:toc} + # Migration guide This guide intends to describe the major changes between the JerryScript 1.0 and 2.0 versions. @@ -771,11 +781,3 @@ In this section the new API functions are listed. - [`jerry_port_fatal`](05.PORT-API.md#jerry_port_fatal) - [`jerry_port_sleep`](05.PORT-API.md#jerry_port_sleep) - [`jerry_port_print_byte`](05.PORT-API.md#jerry_port_print_byte) - -# Migrating from 2.x to 3.x - -The most significant change in JerryScript 3.0 was the API rework. Most of the API functions had been -renamed in this version. There are notes for every such function in the [API Reference](02.API-REFERENCE.md) -to help you to migrate from an older version. For example: - -*Renamed in version 3.0, it was previously known as `jerry_get_global_object` in earlier versions.* diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 3adfb34d3a..0000000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,330 +0,0 @@ -# Copyright JS Foundation and other contributors, http://js.foundation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -cmake_minimum_required (VERSION 3.10) -project (Jerry C) - -if(NOT DEFINED PYTHON) - set(PYTHON "python") -endif() -# Determining version -execute_process(COMMAND ${PYTHON} ${CMAKE_SOURCE_DIR}/tools/version.py - OUTPUT_VARIABLE JERRY_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE) - -# Determining platform -set(PLATFORM "${CMAKE_SYSTEM_NAME}") -string(TOUPPER "${PLATFORM}" PLATFORM) - -# Determining compiler -if(MSVC) - set(USING_MSVC 1) -endif() - -if(CMAKE_C_COMPILER_ID MATCHES "GNU") - set(USING_GCC 1) -endif() - -# Clang may support for MSVC -if(NOT USING_MSVC AND CMAKE_C_COMPILER_ID MATCHES "Clang") - set(USING_CLANG 1) -endif() - -if(CMAKE_C_COMPILER_ID MATCHES "TI") - set(USING_TI 1) -endif() - -# Determining build type -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "MinSizeRel") -endif() - -# Optional components -set(JERRY_CMDLINE ON CACHE BOOL "Build jerry command line tool?") -set(JERRY_CMDLINE_TEST OFF CACHE BOOL "Build jerry test command line tool?") -set(JERRY_CMDLINE_SNAPSHOT OFF CACHE BOOL "Build jerry snapshot command line tool?") -set(JERRY_LIBFUZZER OFF CACHE BOOL "Build jerry with libfuzzer support?") -set(JERRY_PORT ON CACHE BOOL "Build default jerry port implementation?") -set(JERRY_EXT ON CACHE BOOL "Build jerry-ext?") -set(JERRY_MATH OFF CACHE BOOL "Build and use jerry-math?") -set(UNITTESTS OFF CACHE BOOL "Build unit tests?") -set(DOCTESTS OFF CACHE BOOL "Build doc tests?") - -# Optional build settings -set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries?") -set(ENABLE_AMALGAM OFF CACHE BOOL "Enable amalgamated build?") -set(ENABLE_LTO ON CACHE BOOL "Enable LTO build?") -set(ENABLE_STRIP ON CACHE BOOL "Enable stripping all symbols from release binary?") -set(ENABLE_COMPILE_COMMANDS ON CACHE BOOL "Enable generating compile_commands.json?") - -if(USING_MSVC) - set(ENABLE_STATIC_CRT OFF CACHE BOOL "Enable MSVC static CRT?") -endif() - -# Option overrides -if(NOT USING_CLANG) - set(JERRY_LIBFUZZER OFF) - - set(JERRY_LIBFUZZER_MESSAGE " (FORCED BY COMPILER)") -endif() - -if(JERRY_CMDLINE OR JERRY_CMDLINE_TEST OR JERRY_CMDLINE_SNAPSHOT OR JERRY_LIBFUZZER OR UNITTESTS OR DOCTESTS) - set(JERRY_PORT ON) - - set(JERRY_PORT_MESSAGE " (FORCED BY CMDLINE OR LIBFUZZER OR TESTS)") -endif() - -if(JERRY_CMDLINE OR DOCTESTS) - set(JERRY_EXT ON) - - set(JERRY_EXT_MESSAGE " (FORCED BY CMDLINE OR TESTS)") -endif() - -if("${PLATFORM}" STREQUAL "DARWIN") - set(ENABLE_LTO OFF) - set(ENABLE_STRIP OFF) - - set(ENABLE_LTO_MESSAGE " (FORCED BY PLATFORM)") - set(ENABLE_STRIP_MESSAGE " (FORCED BY PLATFORM)") -endif() - -if("${PLATFORM}" STREQUAL "ESP-IDF") - set(ENABLE_LTO OFF) - set(ENABLE_STRIP OFF) - - set(ENABLE_LTO_MESSAGE " (FORCED BY PLATFORM)") - set(ENABLE_STRIP_MESSAGE " (FORCED BY PLATFORM)") -endif() - -if(USING_TI) - set(ENABLE_STRIP OFF) - - set(ENABLE_STRIP_MESSAGE " (FORCED BY COMPILER)") -endif() - -if(USING_MSVC) - set(ENABLE_STRIP OFF) - - set(ENABLE_STRIP_MESSAGE " (FORCED BY COMPILER)") -endif() - -if(CYGWIN OR MINGW OR MSYS) - set(ENABLE_LTO OFF) - - set(ENABLE_LTO_MESSAGE " (FORCED BY PLATFORM)") -endif() - -# Generate compile_commands.json -set(CMAKE_EXPORT_COMPILE_COMMANDS ${ENABLE_COMPILE_COMMANDS}) - -# Status messages -message(STATUS "CMAKE_BUILD_TYPE " ${CMAKE_BUILD_TYPE}) -message(STATUS "CMAKE_C_COMPILER_ID " ${CMAKE_C_COMPILER_ID}) -message(STATUS "CMAKE_SYSTEM_NAME " ${CMAKE_SYSTEM_NAME}) -message(STATUS "CMAKE_SYSTEM_PROCESSOR " ${CMAKE_SYSTEM_PROCESSOR}) -message(STATUS "BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS}) -message(STATUS "ENABLE_AMALGAM " ${ENABLE_AMALGAM} ${ENABLE_AMALGAM_MESSAGE}) -message(STATUS "ENABLE_LTO " ${ENABLE_LTO} ${ENABLE_LTO_MESSAGE}) -message(STATUS "ENABLE_STRIP " ${ENABLE_STRIP} ${ENABLE_STRIP_MESSAGE}) -message(STATUS "ENABLE_STATIC_CRT " ${ENABLE_STATIC_CRT}) -message(STATUS "ENABLE_COMPILE_COMMANDS " ${ENABLE_COMPILE_COMMANDS}) -message(STATUS "JERRY_VERSION " ${JERRY_VERSION}) -message(STATUS "JERRY_CMDLINE " ${JERRY_CMDLINE} ${JERRY_CMDLINE_MESSAGE}) -message(STATUS "JERRY_CMDLINE_TEST " ${JERRY_CMDLINE_TEST} ${JERRY_CMDLINE_TEST_MESSAGE}) -message(STATUS "JERRY_CMDLINE_SNAPSHOT " ${JERRY_CMDLINE_SNAPSHOT} ${JERRY_CMDLINE_SNAPSHOT_MESSAGE}) -message(STATUS "JERRY_LIBFUZZER " ${JERRY_LIBFUZZER} ${JERRY_LIBFUZZER_MESSAGE}) -message(STATUS "JERRY_PORT " ${JERRY_PORT} ${JERRY_PORT_MESSAGE}) -message(STATUS "JERRY_EXT " ${JERRY_EXT} ${JERRY_EXT_MESSAGE}) -message(STATUS "JERRY_MATH " ${JERRY_MATH} ${JERRY_MATH_MESSAGE}) -message(STATUS "UNITTESTS " ${UNITTESTS}) -message(STATUS "DOCTESTS " ${DOCTESTS}) - -# Setup directories -# Note: This mimics a conventional file system layout in the build directory for -# the sake of convenient location of build artefacts. Proper installation to -# traditional locations is also supported, e.g., to /usr/local. -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/") -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/") - -# Remove rdynamic option -set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS ) - -# Compile/link flags -# Helper macros -macro(jerry_add_flags VAR) - foreach(_flag ${ARGN}) - set(${VAR} "${${VAR}} ${_flag}") - endforeach() -endmacro() - -macro(jerry_add_compile_flags) - jerry_add_flags(CMAKE_C_FLAGS ${ARGV}) -endmacro() - -macro(jerry_add_compile_warnings) - foreach(_warning ${ARGV}) - jerry_add_compile_flags(-W${_warning}) - jerry_add_compile_flags(-Werror=${_warning}) - endforeach() -endmacro() - -macro(jerry_add_link_flags) - jerry_add_flags(LINKER_FLAGS_COMMON ${ARGV}) -endmacro() - -# Architecture-specific compile/link flags -jerry_add_compile_flags(${FLAGS_COMMON_ARCH}) -jerry_add_flags(CMAKE_EXE_LINKER_FLAGS ${FLAGS_COMMON_ARCH}) - -# LTO -if(ENABLE_LTO) - if(USING_GCC OR USING_CLANG) - jerry_add_compile_flags(-flto) - jerry_add_link_flags(-flto) - endif() - if(USING_GCC) - jerry_add_compile_flags(-fno-fat-lto-objects) - # Use gcc-ar and gcc-ranlib to support LTO - set(CMAKE_AR "gcc-ar") - set(CMAKE_RANLIB "gcc-ranlib") - endif() - if(USING_TI) - jerry_add_link_flags(-lto) - endif() -endif() - -# Compiler / Linker flags -if("${PLATFORM}" STREQUAL "DARWIN") - jerry_add_link_flags(-lSystem) - set(CMAKE_C_ARCHIVE_CREATE " Sqc ") - if("${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") - set(CMAKE_C_ARCHIVE_FINISH " -no_warning_for_no_symbols -c ") - else() - set(CMAKE_C_ARCHIVE_FINISH " ") - endif() - set(CMAKE_SHARED_LINKER_FLAGS "-undefined dynamic_lookup") -elseif((NOT CYGWIN AND NOT MINGW AND NOT MSYS) AND (USING_GCC OR USING_CLANG)) - jerry_add_link_flags(-Wl,-z,noexecstack) -endif() - -if(USING_GCC OR USING_CLANG) - jerry_add_compile_flags(-std=c99 -pedantic) - if(JERRY_MATH) - jerry_add_compile_flags(-fno-builtin) - endif() - jerry_add_compile_warnings(all extra format-nonliteral init-self sign-conversion format-security missing-declarations shadow strict-prototypes undef old-style-definition) - if(NOT "${PLATFORM}" STREQUAL "WINDOWS") - jerry_add_compile_warnings(conversion) - endif() - jerry_add_compile_flags(-Wno-stack-protector -Wno-attributes -Werror) -endif() - -if(USING_GCC) - jerry_add_compile_warnings(logical-op) - # TODO: Remove workaround for gcc 7 bug if the fallthrough comment detection is fixed. - if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 7.0) - jerry_add_compile_flags(-Wno-implicit-fallthrough) - endif() -endif() - -if(USING_CLANG) - jerry_add_compile_flags(-Wno-nested-anon-types -Wno-static-in-inline) -endif() - -if(USING_TI) - jerry_add_compile_flags(--c99) -endif() - -if(USING_MSVC) - jerry_add_link_flags(/OPT:NOREF) - # Disable MSVC warning 4996 globally because it stops us from using standard C functions. - jerry_add_compile_flags(/wd4996) - - if(ENABLE_STATIC_CRT) - # Replace the existing /MD and /MDd values with /MT and /MTd. - set(COMPILER_FLAGS - CMAKE_CXX_FLAGS - CMAKE_CXX_FLAGS_DEBUG - CMAKE_CXX_FLAGS_RELEASE - CMAKE_C_FLAGS - CMAKE_C_FLAGS_DEBUG - CMAKE_C_FLAGS_RELEASE - ) - - foreach(_flag ${COMPILER_FLAGS}) - string(REPLACE "/MD" "/MT" ${_flag} "${${_flag}}") - endforeach() - endif() -endif() - -if(JERRY_LIBFUZZER) - jerry_add_compile_flags(-fsanitize=fuzzer-no-link) -endif() - -# Strip binary -if(ENABLE_STRIP AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - jerry_add_link_flags(-s) -endif() - -# External compiler & linker flags -if(DEFINED EXTERNAL_COMPILE_FLAGS) - jerry_add_compile_flags(${EXTERNAL_COMPILE_FLAGS}) -endif() - -if(DEFINED EXTERNAL_LINKER_FLAGS) - jerry_add_link_flags(${EXTERNAL_LINKER_FLAGS}) -endif() - -# Used as placeholder to attach amalgamated build targets to -add_custom_target(amalgam) - -# Jerry's libm -if(JERRY_MATH) - add_subdirectory(jerry-math) -endif() - -# Jerry's core -add_subdirectory(jerry-core) - -# Jerry's extension tools -if(JERRY_EXT) - add_subdirectory(jerry-ext) -endif() - -# Jerry's default port implementation -if(JERRY_PORT) - add_subdirectory(jerry-port) -endif() - -# Jerry command line tool -if(JERRY_CMDLINE OR JERRY_CMDLINE_TEST OR JERRY_CMDLINE_SNAPSHOT OR JERRY_LIBFUZZER) - add_subdirectory(jerry-main) -endif() - -# Unittests -if(UNITTESTS) - add_subdirectory(tests/unit-core) - if(JERRY_MATH) - add_subdirectory(tests/unit-math) - endif() - if(JERRY_EXT) - add_subdirectory(tests/unit-ext) - endif() -endif() - -# Doctests -if(DOCTESTS) - add_subdirectory(tests/unit-doc) -endif() diff --git a/CNAME b/CNAME new file mode 100644 index 0000000000..e6cc4b0c3e --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +jerryscript.net diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 014feb50b2..0000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,101 +0,0 @@ -# Contribution Guidelines -## Patch Submission Process - -The following guidelines on the submission process are provided to help you be more effective when submitting code to the JerryScript project. - -When development is complete, a patch set should be submitted via GitHub pull requests. A review of the patch set will take place. When accepted, the patch set will be integrated into the master branch, verified, and tested. It is then the responsibility of the authoring developer to maintain the code throughout its lifecycle. - -Please submit all patches in public by opening a pull request. Patches sent privately to Maintainers and Committers will not be considered. Because the JerryScript Project is an Open Source project, be prepared for feedback and criticism-it happens to everyone-. If asked to rework your code, be persistent and resubmit after making changes. - -### 1. Scope the patch - -Smaller patches are generally easier to understand and test, so please submit changes in the smallest increments possible, within reason. Smaller patches are less likely to have unintended consequences, and if they do, getting to the root cause is much easier for you and the Maintainers and Committers. Additionally, smaller patches are much more likely to be accepted. - -### 2. Ensure all files have a proper license header and copyright notice - -Any code that you want to contribute to the project must be licensed under the [Apache License 2.0](LICENSE). Contributions under a different license can not be accepted. Each file should start with the following header: - -```c -/* Copyright JS Foundation and other contributors, http://js.foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -``` - -Adding copyright notices other than the project-wide notice ("Copyright JS Foundation and other contributors, http://js.foundation") is not permitted. The only exception is adding third-party code which requires copyright notices to be preserved. Adding third-party code to the project generally requires a strong justification. - -### 3. Sign your work with the JerryScript [Developer's Certificate of Origin](DCO.md) - -The sign-off is a simple line at the end of the commit message of the patch, which certifies that you wrote it or otherwise have the right to pass it on as an Open Source patch. The sign-off is required for a patch to be accepted. - -We have the same requirements for using the signed-off-by process as the Linux kernel. -In short, you need to include a signed-off-by tag in every patch. - -You should use your real name and email address in the format below: - -> JerryScript-DCO-1.0-Signed-off-by: Random J Developer random@developer.example.org - -"JerryScript-DCO-1.0-Signed-off-by:" this is a developer's certification that he or she has the right to submit the patch for inclusion into the project. It is an agreement to the JerryScript [Developer's Certificate of Origin](DCO.md). **Code without a proper signoff cannot be merged into the mainline.** - -### 4. Open a GitHub [pull request](https://github.com/jerryscript-project/jerryscript/pulls) - -You can find instructions about opening a pull request [here](https://help.github.com/articles/creating-a-pull-request). - -### 5. What if my patch is rejected? - -It happens all the time, for many reasons, and not necessarily because the code is bad. Take the feedback, adapt your code, and try again. Remember, the ultimate goal is to preserve the quality of the code and maintain the focus of the Project through intensive review. - -Maintainers and Committers typically have to process a lot of submissions, and the time for any individual response is generally limited. If the reason for rejection is unclear, please ask for more information from the Maintainers and Committers. -If you have a solid technical reason to disagree with feedback and you feel that reason has been overlooked, take the time to thoroughly explain it in your response. - -### 6. Code review - -Code review can be performed by all the members of the Project (not just Maintainers and Committers). Members can review code changes and share their opinion through comments guided by the following principles: -* Discuss code; never discuss the code's author -* Respect and acknowledge contributions, suggestions, and comments -* Listen and be open to all different opinions -* Help each other - -Changes are submitted via pull requests and only the Maintainers and Committers should approve or reject the pull request (note that only Maintainers can give binding review scores). -Changes should be reviewed in reasonable amount of time. Maintainers and Committers should leave changes open for some time (at least 1 full business day) so others can offer feedback. Review times increase with the complexity of the review. - -## Tips on GitHub Pull Requests - -* [Fork](https://guides.github.com/activities/forking) the GitHub repository and clone it locally -* Connect your local repository to the original upstream repository by adding it as a remote -* Create a [branch](https://guides.github.com/introduction/flow) for your edits -* Pull in upstream changes often to stay up-to-date so that when you submit your pull request, merge conflicts will be less likely - -For more details, see the GitHub [fork syncing](https://help.github.com/articles/syncing-a-fork) guidelines. - -## How to add the DCO line to every single commit automatically - -It is easy to forget adding the DCO line to the end of every commit message. Fortunately there is a nice way to do it automatically. Once you've cloned the repository into your local machine, you can add `prepare commit message hook` in `.git/hooks` directory like this: - -``` -#!/usr/bin/env python - -import sys - -commit_msg_filepath = sys.argv[1] - -with open(commit_msg_filepath, "r+") as f: - content = f.read() - f.seek(0, 0) - if "Signed-off-by" not in content: - f.write("\n\nJerryScript-DCO-1.0-Signed-off-by: \n%s" % content) - else: - f.write(content) -``` - -Please refer [Git Hooks](http://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) for more information. diff --git a/DCO.md b/DCO.md deleted file mode 100644 index 9350b88cd7..0000000000 --- a/DCO.md +++ /dev/null @@ -1,22 +0,0 @@ -# JerryScript Developer's Certificate of Origin - -The JerryScript project uses the signed-off-by language and process to give us a clear chain of trust for every patch received. - -> By making a contribution to this project, I certify that: - -> (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or - -> (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or - -> (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. - -> (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project, under the same open source license. - -We have the same requirements for using the signed-off-by process as the Linux kernel. -In short, you need to include a signed-off-by tag in the commit message of every patch. - -You should use your real name and email address in the format below: - -> JerryScript-DCO-1.0-Signed-off-by: Random J Developer random@developer.example.org - -"JerryScript-DCO-1.0-Signed-off-by:" this is a developer's certification that he or she has the right to submit the patch for inclusion into the project. It is an agreement to the Developer's Certificate of Origin (above). **Code without a proper signoff cannot be merged into the mainline.** diff --git a/Doxyfile b/Doxyfile deleted file mode 100644 index 17bd22d821..0000000000 --- a/Doxyfile +++ /dev/null @@ -1,2627 +0,0 @@ -# Doxyfile 1.9.1 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the configuration -# file that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# https://www.gnu.org/software/libiconv/ for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = JerryScript - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "JavaScript Engine for Internet of Things" - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = docs/doxygen - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = YES - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = YES - -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line -# such as -# /*************** -# as being the beginning of a Javadoc-style comment "banner". If set to NO, the -# Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. -# The default value is: NO. - -JAVADOC_BANNER = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# By default Python docstrings are displayed as preformatted text and doxygen's -# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the -# doxygen's special commands can be used and the contents of the docstring -# documentation blocks is shown as doxygen documentation. -# The default value is: YES. - -PYTHON_DOCSTRING = YES - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 2 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice -# sources only. Doxygen will then generate output that is more tailored for that -# language. For instance, namespaces will be presented as modules, types will be -# separated into more groups, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_SLICE = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: -# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser -# tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files). For instance to make doxygen treat .inc files -# as Fortran files (default is PHP), and .f files as C (default is Fortran), -# use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. When specifying no_extension you should add -# * to the FILE_PATTERNS. -# -# Note see also the list of default file extension mappings. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 5. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 5 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = YES - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use -# during processing. When set to 0 doxygen will based this on the number of -# cores available in the system. You can set it explicitly to a value larger -# than 0 to get more control over the balance between CPU load and processing -# speed. At this moment only the input processing can be done using multiple -# threads. Since this is still an experimental feature the default is set to 1, -# which efficively disables parallel processing. Please report any issues you -# encounter. Generating dot graphs in parallel is controlled by the -# DOT_NUM_THREADS setting. -# Minimum value: 0, maximum value: 32, default value: 1. - -NUM_PROC_THREADS = 1 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual -# methods of a class will be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIV_VIRTUAL = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = YES - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If this flag is set to YES, the name of an unnamed parameter in a declaration -# will be determined by the corresponding definition. By default unnamed -# parameters remain unnamed in the output. -# The default value is: YES. - -RESOLVE_UNNAMED_PARAMS = YES - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# declarations. If set to NO, these declarations will be included in the -# documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# With the correct setting of option CASE_SENSE_NAMES doxygen will better be -# able to match the capabilities of the underlying filesystem. In case the -# filesystem is case sensitive (i.e. it supports files in the same directory -# whose names only differ in casing), the option must be set to YES to properly -# deal with such files in case they appear in the input. For filesystems that -# are not case sensitive the option should be be set to NO to properly deal with -# output files written for symbols that only differ in casing, such as for two -# classes, one named CLASS and the other named Class, and to also support -# references to files without having to specify the exact matching casing. On -# Windows (including Cygwin) and MacOS, users should typically set this option -# to NO, whereas on Linux or other Unix flavors it should typically be set to -# YES. -# The default value is: system dependent. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = YES - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. -# The default value is: NO. - -WARN_NO_PARAMDOC = YES - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS -# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but -# at the end of the doxygen process doxygen will return with a non-zero status. -# Possible values are: NO, YES and FAIL_ON_WARNINGS. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = jerry-core \ - jerry-ext \ - jerry-port - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: -# https://www.gnu.org/software/libiconv/) for the list of possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# Note the list of default checked file patterns might differ from the list of -# default file extension mappings. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl, -# *.ucf, *.qsf and *.ice. - -FILE_PATTERNS = *.h \ - *.c - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -# FIXME: None of these files are excluded light-heartedly. They should be -# removed one-by-one and warnings reported by doxygen should be fixed by those -# who are familiar with the undocumented parts. -EXCLUDE = jerry-core/ecma/base/ecma-globals.h \ - jerry-core/ecma/operations/ecma-exceptions.h \ - jerry-core/include/jerryscript-debugger-transport.h \ - jerry-core/jcontext/jcontext.h \ - jerry-core/parser/js/byte-code.h \ - jerry-core/parser/js/common.h \ - jerry-core/parser/js/js-lexer.h \ - jerry-core/parser/js/js-parser-internal.h \ - jerry-core/parser/regexp/re-parser.h \ - jerry-core/vm/vm-stack.h - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = *.inc.h - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# entity all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: -# http://clang.llvm.org/) for more accurate parsing at the cost of reduced -# performance. This can be particularly helpful with template rich C++ code for -# which doxygen's built-in parser lacks the necessary type information. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to -# YES then doxygen will add the directory of each input to the include path. -# The default value is: YES. - -CLANG_ADD_INC_PATHS = YES - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -# If clang assisted parsing is enabled you can provide the clang parser with the -# path to the directory containing a file called compile_commands.json. This -# file is the compilation database (see: -# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the -# options used when the source files were built. This is equivalent to -# specifying the -p option to a clang tool, such as clang-check. These options -# will then be passed to the parser. Any options specified with CLANG_OPTIONS -# will be added as well. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. - -CLANG_DATABASE_PATH = - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# https://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML -# documentation will contain a main index with vertical navigation menus that -# are dynamically created via JavaScript. If disabled, the navigation index will -# consists of multiple levels of tabs that are statically embedded in every HTML -# page. Disable this option to support browsers that do not have JavaScript, -# like the Qt help browser. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_MENUS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = YES - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: -# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To -# create a documentation set, doxygen will generate a Makefile in the HTML -# output directory. Running make will produce the docset in that directory and -# running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy -# genXcode/_index.html for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: -# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the main .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location (absolute path -# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to -# run qhelpgenerator on the generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = YES - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = YES - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg -# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see -# https://inkscape.org) to generate formulas as SVG images instead of PNGs for -# the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png (the default) and svg (looks nicer but requires the -# pdf2svg or inkscape tool). -# The default value is: png. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FORMULA_FORMAT = png - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands -# to create new LaTeX commands to be used in formulas as building blocks. See -# the section "Including formulas" for details. - -FORMULA_MACROFILE = - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side JavaScript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: -# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /